SlideShare uma empresa Scribd logo
1 de 166
Baixar para ler offline
boxen

wfarr

ops and
friction
boxen
why should i
care about this?
STORY TIME
once upon a shitty time
once upon a shitty time


               Time to get set up.
             I want to hack on stuff!
once upon a shitty time


             Okay, install XCode...
once upon a shitty time


                and rbenv...
once upon a shitty time


             and a bunch of rubies...
once upon a shitty time


                 and pow...
once upon a shitty time


                and nodejs...
once upon a shitty time


                and bower...
once upon a shitty time


                and bundler...
once upon a shitty time


                and mysql...
once upon a shitty time


               and postgresql...
once upon a shitty time


             probably okay without
                  mongodb...
once upon a shitty time


                 definitely need
             elasticsearch though...
once upon a shitty time


               huh... well I can't
              connect to the db!
once upon a shitty time


               and now ruby is
                segfaulting?!
once upon a shitty time


                   wat
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
I just want to
ship cool stuff...
STUFF
     OOL
 SS C
U
I thought I wrote
  an install guide
 that people could
just walk through.

 I wonder what
    broke...

  Ops Person
Boxen: How to Manage an Army of Laptops
A SOLUTION IS BORN
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
once upon an awesome time
once upon an awesome time


                Time to get set up.
              I want to hack on stuff!
once upon an awesome time


                     Okay, I go to
             https://boxen.company.com
once upon an awesome time


                It says I should install
               Xcode real quick. Sure.
once upon an awesome time


              Now I copy and paste this
              one line into the Terminal.
once upon an awesome time


               Oh, hey! It's doing stuff.
              I guess I'll grab a coffee.
I swear this is a
different coffee cup
     from before
once upon an awesome time


              Rad! It says it's done and
              to open a new Terminal.
once upon an awesome time


              Holy automated awesome,
              Batman! I'm ready to work!
so like what is
boxen actually?


stdli
         b



Boxen: How to Manage an Army of Laptops
wtf is a devops
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
homebrew, git, gcc, .dev dns,
 nginx, rbenv, ruby-build, a bunch
of ruby versions, nodenv, a bunch
    of nodejs versions, heroku
toolchain, hub, mysql, postgresql,
  elasticsearch, riak, java, and a
     whole lot more available
what do i do with
     boxen?
MANAGE PROJECTS
Boxen: How to Manage an Army of Laptops
Hmm. Let's hack on
  github/github!
The README says to run
     `boxen github`
Okay, it's doing stuff...
        I think?


The Puppet logging
   format is hella
 confusing to most
 people, seriously.
What just happened?
1.  Clone github/github
2.  Make sure dpkg is installed
3.  Make sure icu4c is installed
4.  Make sure libgithub is installed
5.  Make sure md5sha1sum is installed
6.  Make sure solr is installed
7.  Make sure mysql is installed and running
8.  Make sure elasticsearch is installed and running
9.  Make sure memcached is installed and running
10. Make sure the dev and tests DBs are created
11. Make sure python is installed
12. Make sure redis is installed and running
13. Make sure Ruby 1.9.3 is installed
14. Make sure ~/github/github is set to use 1.9.3
15. Notify the user of any new environment variables Boxen provides
    and let them know to restart their shell
16. Make sure github/pages-jekyll is cloned
17. Make sure github/pages-jekyll is set to use 1.9.3
18. Make sure environment config for github/pages-jekyll is setup
1.
2.
    Clone github/github
                         e
                       h o
    Make sure dpkg is installed
3.                    t t
    Make sure icu4c is installed
4.
5.
                    e t
    Make sure libgithub is installed
                   s s
    Make sure md5sha1sum is installed
                  a u
                e   j ide
6.  Make sure solr is installed
7.
8.
               r t
    Make sure mysql is installed and running
              c p       l
    Make sure elasticsearch is installed and running
9.         e 4
         d 2          s
    Make sure memcached is installed and running
10.                 e
    Make sure the dev and tests DBs are created
        o y on
11.
       t b
    Make sure python is installed
12.
13.  d e on
    Make sure redis is installed and running
   a iz
    Make sure Ruby 1.9.3 is installed
  h s
14.
i t
15.        l l
    Make sure ~/github/github is set to use 1.9.3
    Notify the user of any new environment variables Boxen provides
         a
    and let them know to restart their shell
   n it
f o t
16. Make sure github/pages-jekyll is cloned
17. Make sure github/pages-jekyll is set to use 1.9.3
   f i
18. Make sure environment config for github/pages-jekyll is setup


                               and this is the annotated version
okay, well, what about the code to
       make this happen?
class projects::github {
  include dpkg
  include icu4c
  include libgithub

    include projects::pages-jekyll

    boxen::project { 'github':
      elasticsearch => true,
      memcached      => true,
      mysql          => [
         'github_enterprise',
         'github_development',
         'github_test'
      ],
      nginx          => 'projects/github/nginx.conf.erb',
      python         => true,
      redis          => true,
      ruby           => '1.9.3',
      source         => 'github/github'
    }

    package { 'md5sha1sum': }
}
what about your "average" app?
class projects::battle_station {
  boxen::project { 'battle_station':
    dotenv => true,
    mysql => true,
    nginx => true,
    redis => true,
    ruby   => '2.0.0',
    source => 'github/battle_station'
  }
}
MANAGE EVERYTHING
    ELSE TOO
Boxen: How to Manage an Army of Laptops
That's cool and all, but
   what about me?
I need to live on the bleeding
     edge version of `sl`.
And my screensaver needs
    100% more lasers.
Hmm. Some documentation!
  "Personal manifests?"
Oh, this looks kind of neat.
      Maybe I'll do it.
class people::wfarr {
  include emacs
  include zsh

    include projects::battle_station
}
class people::wfarr {
  git::config::global {
    'alias.st': value => 'status' ;
    'alias.ci': value => 'commit' ;
    'user.name': value => 'wfarr' ;
  }
}
class people::wfarr {
  repository {
    "/Users/${::boxen_user}/.emacs.d":
      source => 'wfarr/.emacs.d'
  }
}
class people::wfarr {
  boxen::osx_defaults {
    'Fix bluetooth audio streaming because OSX is dumb':
      ensure => present,
      domain => 'com.apple.BluetoothAudioAgent',
      key    => shellquote('Apple Bitpool Min (editable)'),
      value => 50,
      user   => $::boxen_user ;
  }
}
CLI
$ boxen

# run it
$ boxen --projects

# list projects Boxen knows about
$ boxen <project>

# run it but include <project> in the
catalog automatically
$ boxen --debug

# run it but include <project> in the
catalog automatically
UPDATE EASILY
$ boxen

Boxen is up-to-date.
$ boxen

Boxen has a dirty tree, won't auto-
update!
$ boxen

Boxen has unpushed commits on
master, won't auto-update!
$ boxen

Boxen on a non-master branch 'new-
project', won't auto-update!
FAIL GRACEFULLY
$ boxen
Error: ZOMG at /opt/boxen/repo/
modules/people/manifests/wfarr.pp:8
on node scruffy.gateway.github.lan

Sorry! Creating an issue on github/
totally-a-madeup-repo-name.
CODEZ
who failed

CODEZ
how long ago

CODEZ
CODEZ
        machine
os version


CODEZ
CODEZ   shell
ref
CODEZ
compare view
CODEZ
git status
CODEZ
CODEZ

        full command
CODEZ

        full log
i fix the error and run `boxen`
CODEZ
via issues api
# config/boxen.rb

ENV['BOXEN_REPO_NAME'] = 
  'github/boxen'

ENV['BOXEN_ISSUES_ENABLED'] = 'yes'
This is pretty freaking rad!
It's just code.
Maybe I can write this too...




   66 GitHubbers (~42%)
      have contributed
    personal manifests or
   project manifests since
           October



     
   44 Devs

   7 Ops
   5 Designers
   4 Supportocats

           3 Trainers

   1 Education Liaison

   1 Enterprise Salesperson

         1 Security Bloke
Boxen: How to Manage an Army of Laptops
Boxen: How to Manage an Army of Laptops
really using it
EMBRACE AND EXTEND
create higher level abstractions
class projects::battle_station {
  boxen::project { 'battle_station':
    dotenv => true,
    mysql => true,
    nginx => true,
    redis => true,
    ruby   => '2.0.0',
    source => 'github/battle_station'
  }
}

       This is the same for 80% of cases
let's optimize for our use-case
The sanest default, but easy to override

define github::project(
  $source = "github/${title}"
  # a whole bunch of other params
) {

    boxen::project { $name:
      source => $source,
      # that bunch of other params
    }
}
maybe all of our ops team should
 get certain things by default
class github::environment {
  include_github_team_environments()
}
class github::environment::ops {
  include
github::environment::ops::vagrant

    include projects::battle_station
    include projects::octostatus
    include projects::puppet
}
START SIMPLE
write new modules inside your
  repo first and extract later
~/github/boxen » ls -1 modules
cmake
ctags
github
libgithub
libmicrohttpd
nodejs
people
projects
strap
~/github/boxen » ls -1 modules
cmake
ctags
github
libgithub
libmicrohttpd
nodejs        WIP v2.0.0 nodejs module
people
projects
strap
start abstractions in Puppet
refactor into Ruby later if
performance demands it
define nodejs::version(
  $ensure = present,
  $compile = false,
  $version = $title,
) {
  require nodejs

    case $ensure {
      present: { # exec to install }

        absent: { # exec or file to rm }
    }
}
Time:
       Filebucket: 0.00
   Vagrant plugin: 0.00
           Nodejs: 4.37
          Sudoers: 0.00
        File line: 0.00
      Ini setting: 0.01
            Group: 0.10
       Repository: 0.12
             File: 0.66
          Service: 1.54
          Package: 112.76
            Total: 130.29
         Last run: 1365003143
        Rbenv gem: 2.23
             Exec: 3.36
   Config retrieval: 7.27
if it's consistently slowing down
       the run, then optimize
define nodejs::version(
  $ensure = present,
  $compile = false,
  $version = $title,
) {
  require nodejs

    nodejs { $version:
      ensure => $ensure,
      compile => $compile,
    }
}
       This impl. happens to fork less
DO WHATEVER WORKS
practicality beats purity /
perfect is the enemy of good enough
but...
WHY ISN'T THIS JUST A
 BUNCH OF SCRIPTS?
idempotent behavior
 is kind of a big deal
shell scripts get the job done if you
 live in a wonderful vacuum where
 constraints never change and the
 dependencies between resources
           are forever static
the real world really
doesn't care one bit
telling people
"if it breaks, just reinstall"
          is a copout
if people expect to your software
  to behave a certain way, and you
  have the power to automate that
       behavior and then don't,
   you're being a jerk to your users

user experience common sense 101
WHY ISN'T THIS IN CHEF?
so glad people don't ask this one
     at puppet conferences!
transcend tools;
write beautiful porcelain
WHAT ABOUT SECURITY
     UPDATES?
THE DARK AGES OF
SECURITY INTERACTION
          
THE DARK AGES OF
SECURITY INTERACTION


 
         Java browser plugins are
        literally going to beat you
       up, kick your puppy, and eat
        all of your Doritos! zomg!
lol are you kidding me?
I have important codez to write.
           I'll do it later.
      Now be gone, demon!




    HINT: They're never
      going to do it.


Boxen: How to Manage an Army of Laptops
THE awesome AGES OF
SECURITY INTERACTION
          
THE awesome AGES OF
SECURITY INTERACTION


       Hey folks! I just had to push
       an update to Boxen to disable
         Java plugins in browsers.
       Sorry about that! Here's a PR
        with more context: <link>.
THE awesome AGES OF
SECURITY INTERACTION


        Oh snap - audit season!
          Let me just review our
        code to see if we're in the
             clear and secure.
what if i have
  problems?
pull requests
issues
irc.freenode.net
be chuck yeager
Atlanta


          Savannah
Atlanta


          Savannah
Atlanta


          Savannah
Atlanta


          Savannah
Atlanta


          Savannah
"So, we're uh in the air. We made
     it. That's uh good news,
            obviously."
"Flight attendants, if you could
just hang on to uh... whatever..."
Boxen: How to Manage an Army of Laptops
The point at which I
realize I'm going to
         die


The point at which I
 think the worst is
        over
detail text
      wfarr

 speakerdeck.com/wfarr/
boxen-puppetcamp-sf-2013
thanks

Mais conteúdo relacionado

Mais procurados

Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipelineAnton Babenko
 
Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerCalvin French-Owen
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021TomStraub5
 
Containerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaContainerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaJadson Santos
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Stephane Jourdan
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSYevgeniy Brikman
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Puppet
 
Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Anton Babenko
 
The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014Puppet
 
PyCon UK - iCE: Interactive cloud experimentation
PyCon UK - iCE: Interactive cloud experimentationPyCon UK - iCE: Interactive cloud experimentation
PyCon UK - iCE: Interactive cloud experimentationGeorge Lestaris
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with dockerRuoshi Ling
 
Terraform - The Road to Self-Service
Terraform - The Road to Self-ServiceTerraform - The Road to Self-Service
Terraform - The Road to Self-ServiceRyan Boyce
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest openstackindia
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your AnsibleDennis Rowe
 
Scaling terraform
Scaling terraformScaling terraform
Scaling terraformPaolo Tonin
 
Investigation of testing with ansible
Investigation of testing with ansibleInvestigation of testing with ansible
Investigation of testing with ansibleDennis Rowe
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?GDX Wu
 

Mais procurados (20)

Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipeline
 
Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and Power
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
Containerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaContainerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and Java
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
 
Final terraform
Final terraformFinal terraform
Final terraform
 
Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019Terraform AWS modules and some best practices - September 2019
Terraform AWS modules and some best practices - September 2019
 
The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014
 
PyCon UK - iCE: Interactive cloud experimentation
PyCon UK - iCE: Interactive cloud experimentationPyCon UK - iCE: Interactive cloud experimentation
PyCon UK - iCE: Interactive cloud experimentation
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
Terraform - The Road to Self-Service
Terraform - The Road to Self-ServiceTerraform - The Road to Self-Service
Terraform - The Road to Self-Service
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your Ansible
 
Scaling terraform
Scaling terraformScaling terraform
Scaling terraform
 
Investigation of testing with ansible
Investigation of testing with ansibleInvestigation of testing with ansible
Investigation of testing with ansible
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?
 

Semelhante a Boxen: How to Manage an Army of Laptops

Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItPuppet
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortalsHenryk Konsek
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing NodejsPhil Hawksworth
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageAlessandro Cinelli (cirpo)
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Tribal Nova Docker workshop
Tribal Nova Docker workshopTribal Nova Docker workshop
Tribal Nova Docker workshopNicolas Degardin
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and ContainersDocker, Inc.
 
CoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyCoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyPatrick Devins
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK SeminarMartin Scharm
 
Docker in Action
Docker in ActionDocker in Action
Docker in ActionAlper Kanat
 

Semelhante a Boxen: How to Manage an Army of Laptops (20)

Boxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About ItBoxen: How to Manage an Army of Laptops and Live to Talk About It
Boxen: How to Manage an Army of Laptops and Live to Talk About It
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
 
Getting started with developing Nodejs
Getting started with developing NodejsGetting started with developing Nodejs
Getting started with developing Nodejs
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker, c'est bonheur !
Docker, c'est bonheur !Docker, c'est bonheur !
Docker, c'est bonheur !
 
Tribal Nova Docker workshop
Tribal Nova Docker workshopTribal Nova Docker workshop
Tribal Nova Docker workshop
 
Triple Blitz Strike
Triple Blitz StrikeTriple Blitz Strike
Triple Blitz Strike
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and Containers
 
CoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copyCoffeeScript: A beginner's presentation for beginners copy
CoffeeScript: A beginner's presentation for beginners copy
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
 
Docker in Action
Docker in ActionDocker in Action
Docker in Action
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 

Mais de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping groundPuppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyPuppet
 

Mais de Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Último

Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 

Último (20)

Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 

Boxen: How to Manage an Army of Laptops