Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating Docker Containers with Puppet
Search
Kylo Ginsberg
October 13, 2014
0
43
Automating Docker Containers with Puppet
Automating Docker Containers with Puppet, 2014-10-13.
Kylo Ginsberg
October 13, 2014
Tweet
Share
More Decks by Kylo Ginsberg
See All by Kylo Ginsberg
Under the Hood - C++ at Puppet Labs
kylog
0
320
Puppet Client: Puppet 4 and Beyond
kylog
0
39
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Code Reviewing Like a Champion
maltzj
524
40k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Faster Mobile Websites
deanohume
307
31k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
940
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
A better future with KSS
kneath
239
17k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
Automating Docker Containers with Puppet Kylo Ginsberg
[email protected]
@kylog irc:
kylo
Puppet?
So you can write: package { ‘ntp’:! ensure => installed,!
}! file { ‘/etc/ntp.conf’:! ensure => file,! source => ‘/root/example/ntp.conf’,! mode => ‘0444’,! }! service { ‘ntp’:! ensure => running,! }
Forge
Instead write include ‘::ntp' or customize: class { '::ntp':! servers
=> [ 'ntp1.corp.com', 'ntp2.corp.com' ],! }
Puppet System Configuration Declarative Language Resource Abstraction
Two ways to run code: puppet apply puppet agent
Docker and Puppet 1. Building containers! 2. Running containers! 3.
Running inside containers
Building: puppet apply FROM ubuntu:14.04 ! RUN apt-get -y update
RUN apt-get -y install ruby RUN gem install puppet RUN puppet module install puppetlabs/ntp RUN puppet apply -e 'include "::ntp"'
Building: puppet agent FROM ubuntu:14.04 ! RUN apt-get -y update
RUN apt-get -y install ruby RUN gem install puppet RUN puppet agent -t —server my_host
Building: puppet apply FROM jamtur01/puppetbase MAINTAINER James Turnbull "
[email protected]
" !
RUN apt-get -y -q install wget git-core ADD Puppetfile / RUN librarian-puppet install RUN puppet apply --modulepath=/modules -e "class { 'nginx': }" RUN echo "daemon off;" >> /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx"]
System?
Running docker with puppet docker::run { 'helloworld': image => 'ubuntu:precise',
command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"', }
Puppet Agent on a Container?
Container == VM ?
Puppet Agent on a Container? Only if you’re treating it
as a VM
Container == PID? No syslogd, no sshd, no puppet agent
Container == PID?
Bye
Idempotence The state looked like this I ran the function
again The state looked like this