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
55
0
Share
Automating Docker Containers with Puppet
Automating Docker Containers with Puppet, 2014-10-13.
Kylo Ginsberg
October 13, 2014
More Decks by Kylo Ginsberg
See All by Kylo Ginsberg
Under the Hood - C++ at Puppet Labs
kylog
0
330
Puppet Client: Puppet 4 and Beyond
kylog
0
46
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
WCS-LA-2024
lcolladotor
0
600
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
290
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
120
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Claude Code のすすめ
schroneko
67
220k
Everyday Curiosity
cassininazir
0
210
Odyssey Design
rkendrick25
PRO
2
620
Fireside Chat
paigeccino
42
3.9k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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