SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
Using Puppet and Cobbler to
   Automate Your Infrastructure
    Phillip J. Windley, Ph.D
    Founder and CTO
    Kynetx
    www.kynetx.com




Monday, October 12, 2009          1
Sleeping Through the Night
    Phillip J. Windley, Ph.D
    Founder and CTO
    Kynetx
    www.kynetx.com




Monday, October 12, 2009        2
(afford|scal|reli)ability




Monday, October 12, 2009                               3
hire fewer people




Monday, October 12, 2009                       4
meet demand quickly




Monday, October 12, 2009                         5
make fewer mistakes




Monday, October 12, 2009                         6
Monday, October 12, 2009   7
Monday, October 12, 2009   8
Monday, October 12, 2009   8
Monday, October 12, 2009   8
Monday, October 12, 2009   9
1. machine provisioning




Monday, October 12, 2009                      9
1. machine provisioning
                    2. system configuration




Monday, October 12, 2009                      9
1. machine provisioning
                    2. system configuration
                    3. deployment




Monday, October 12, 2009                      9
Monday, October 12, 2009   10
provisioning




Monday, October 12, 2009                  11
machine provisioning




Monday, October 12, 2009   12
machine provisioning
                      manage images & repositories




Monday, October 12, 2009                             12
machine provisioning
                      manage images & repositories
                      kickstart machines




Monday, October 12, 2009                             12
machine provisioning
                      manage images & repositories
                      kickstart machines
                      handle physical and virtual hardware




Monday, October 12, 2009                                     12
machine provisioning
                      manage images & repositories
                      kickstart machines
                      handle physical and virtual hardware
                      set up DHCP and DNS




Monday, October 12, 2009                                     12
Monday, October 12, 2009   13
cobbler is a collection of tools
                that support
          machine provisioning



Monday, October 12, 2009                  13
Monday, October 12, 2009   14
cobblerd

                           dns  power
                               dhcp




Monday, October 12, 2009                14
cobblerd

                           dns  power
                               dhcp     cobbler
                                         web
                                                  repos
                                        images
                                                  kickstart




Monday, October 12, 2009                                      14
koan

                           cobblerd

                           dns  power
                               dhcp     cobbler
                                         web
                                                  repos
                                        images
                                                  kickstart




Monday, October 12, 2009                                      14
cobbler uses a collection of
                 specifications that
                define your systems



Monday, October 12, 2009                    15
Monday, October 12, 2009   16
distro




Monday, October 12, 2009            16
profile        repo


                                distro




Monday, October 12, 2009                        16
system


                           profile        repo


                                distro




Monday, October 12, 2009                        16
import a distro
    cobbler import --mirror ~/fc8 --name fc8




Monday, October 12, 2009                       17
import a distro
    cobbler import --mirror ~/fc8 --name fc8

    create a profile
    cobbler profile add --name=base-fc8
       --distro=fc8-xen-i386
       --kickstart=/root/base-fc8.ks
       --repos=fc8-newkey-repo




Monday, October 12, 2009                       17
import a distro
    cobbler import --mirror ~/fc8 --name fc8

    create a profile
    cobbler profile add --name=base-fc8
       --distro=fc8-xen-i386
       --kickstart=/root/base-fc8.ks
       --repos=fc8-newkey-repo

    define a system
    cobbler system add --name=log0
       --mac=00:16:3E:4B:40:00
       --ip=192.168.122.180 --profile=base-fc8
       --hostname=log0


Monday, October 12, 2009                         17
building a machine
    koan --server=cobbler.kobj.net --virt
      --nogfx --system=log0




Monday, October 12, 2009                    18
configuration




Monday, October 12, 2009                   19
system configuration




Monday, October 12, 2009   20
system configuration

                      critical services on or off




Monday, October 12, 2009                            20
system configuration

                      critical services on or off
                      security systems configured correctly




Monday, October 12, 2009                                      20
system configuration

                      critical services on or off
                      security systems configured correctly
                      users created




Monday, October 12, 2009                                      20
system configuration

                      critical services on or off
                      security systems configured correctly
                      users created
                      necessary libraries in place




Monday, October 12, 2009                                      20
system configuration

                      critical services on or off
                      security systems configured correctly
                      users created
                      necessary libraries in place
                      right packages built & installed




Monday, October 12, 2009                                      20
Monday, October 12, 2009   21
puppet is a language for
                  specifying desired system
                        configuration


Monday, October 12, 2009                      21
install
                           package




Monday, October 12, 2009              22
install
                           package



                                      configure




Monday, October 12, 2009                         22
install
                           package       configuration
                                      should be modified
                                        after package
                                          installation



                                          configure




Monday, October 12, 2009                                   22
install
                           package       configuration
                                      should be modified
                                        after package
                                          installation



                                          configure




                                                           service



Monday, October 12, 2009                                             22
install
                           package       configuration
                                      should be modified
                                        after package
                                          installation



                                          configure           service should
                                                           restart whenever
                                                              configuration
                                                                changes



                                                               service



Monday, October 12, 2009                                                      22
the hard way



    yum install openssh-server
    vi /etc/ssh/sshd_config
    service sshd start




Monday, October 12, 2009         23
the puppet way
    class ssh {
      package { ssh: ensure => installed }
      file { sshd_config:
        name => “/etc/ssh/sshd_config”,
        owner=> root,
        source => “puppet://server/apps/ssh/…”,
        after => Package[ssh]
      }
      service { sshd:
        ensure => running,
        subscribe => [Package[ssh],
                      File[sshd_config]]
      }
    }
Monday, October 12, 2009                          24
the puppet way
    class ssh {
      package { ssh: ensure => installed }
      file { sshd_config:
        name => “/etc/ssh/sshd_config”,
        owner=> root,
        source => “puppet://server/apps/ssh/…”,
        after => Package[ssh]
      }
      service { sshd:
        ensure => running,
        subscribe => [Package[ssh],
                      File[sshd_config]]
      }
    }
Monday, October 12, 2009                          24
the puppet way
    class ssh {
      package { ssh: ensure => installed }
      file { sshd_config:
        name => “/etc/ssh/sshd_config”,
        owner=> root,
        source => “puppet://server/apps/ssh/…”,
        after => Package[ssh]
      }
      service { sshd:
        ensure => running,
        subscribe => [Package[ssh],
                      File[sshd_config]]
      }
    }
Monday, October 12, 2009                          24
wait a minute…
                     that looks like a lot
                      more lines to me!




Monday, October 12, 2009                     25
deployment




Monday, October 12, 2009                26
requirements




Monday, October 12, 2009   27
requirements
                    deployment happens over & over again




Monday, October 12, 2009                                   27
requirements
                    deployment happens over & over again
                    controlled, not continuous




Monday, October 12, 2009                                   27
requirements
                    deployment happens over & over again
                    controlled, not continuous
                    role-based




Monday, October 12, 2009                                   27
requirements
                    deployment happens over & over again
                    controlled, not continuous
                    role-based
                    remotable




Monday, October 12, 2009                                   27
now for deployment...




Monday, October 12, 2009                           28
now for deployment...




Monday, October 12, 2009                           28
now for deployment...




Monday, October 12, 2009                           28
now for deployment...




Monday, October 12, 2009                           28
in the end…
                           I just wrote it in Perl
                               in a few hours



Monday, October 12, 2009                             29
[root@ops deploy]# ./deploy.pl -d

    The following tasks are configured:
    deploy         | Export a new copy of the code
    install        | deploy, initialize, restart
    uninstall      | rollback code, initialize,restart
    start_httpd    | Start the HTTP server
    rollback       | Rollback to the deploy
    stop_httpd     | Stop the HTTP server
    test_server    | Run the appropriate server test
    cleanup        | Remove old copies of code
    test_code      | Run the all tests
    configure_httpd| Build the httpd.conf file
    install_init   | Install the init JS files
    restart_httpd | Restart the HTTP server



Monday, October 12, 2009                                 30
[root@ops deploy]# ./deploy.pl -s

     server                | version
    -----------------------|----------------
     init0.kobj.net        | 340M
     init1.kobj.net        | 340M
     log.kobj.net          | 340
     log0.kobj.net         | 340
     log1.kobj.net         | 340
     krl.kobj.net          | 340
     cs0.kobj.net          | 341
     cs1.kobj.net          | 341
     cs2.kobj.net          | 341
     cs3.kobj.net          | 341




Monday, October 12, 2009                       31
[root@ops deploy]# ./deploy.pl -m krl -t install

    Performing install on krl with role krl...
    A    /web/lib/releases/perl_0910091229/ops
    ...
    A    /web/lib/releases/perl_0910091229/startup.pl
    A    /web/lib/releases/perl_0910091229/Kynetx.pm
    A    /web/lib/releases/perl_0910091229/README
    Checked out revision 342.
    Writing /web/conf/httpd.conf
    Stopping httpd: [ OK ]
    Starting httpd: [ OK ]
    Testing RuleManager.....ok
    All tests successful.
    Files=1, Tests=73, 8 wallclock secs ...
    Result: PASS


Monday, October 12, 2009                                32
TODO




Monday, October 12, 2009   33
TODO

                    configuration database




Monday, October 12, 2009                     33
TODO

                    configuration database
                    (more) automated testing




Monday, October 12, 2009                       33
TODO

                    configuration database
                    (more) automated testing
                    continuous integration




Monday, October 12, 2009                       33
results




Monday, October 12, 2009             34
Monday, October 12, 2009   35
kynetx can
                            stand up a
                           new server in
                           < 30 minutes


Monday, October 12, 2009                   36
our servers stay up
                                                       downtime*
                                                       0.00229%




                             uptime
                           99.99772%




                                       * includes scheduled maintenance


Monday, October 12, 2009                                                  37
Warning!
Monday, October 12, 2009   38
Warning!
Monday, October 12, 2009   38
lessons learned




Monday, October 12, 2009   39
lessons learned
                    architect for (afford|scal|reli)ability




Monday, October 12, 2009                                      39
lessons learned
                    architect for (afford|scal|reli)ability
                    insist on consistency & repeatability




Monday, October 12, 2009                                      39
lessons learned
                    architect for (afford|scal|reli)ability
                    insist on consistency & repeatability
                    document process with code




Monday, October 12, 2009                                      39
lessons learned
                    architect for (afford|scal|reli)ability
                    insist on consistency & repeatability
                    document process with code
                    rolling releases and change control




Monday, October 12, 2009                                      39
lessons learned
                    architect for (afford|scal|reli)ability
                    insist on consistency & repeatability
                    document process with code
                    rolling releases and change control
                    put ops procedures online




Monday, October 12, 2009                                      39
learning more
                Introduction to Cobbler
                     Derek Carter 2:30
                Puppet Workshop
                     Andrew Shafer 3:00
                Managing your minions with func
                     Daniel Hanks 3:45
                Cobbler power tools
                     Derek Carter 5:00

Monday, October 12, 2009                          40
Nov 18-19, 2009,
                              Provo UT




Monday, October 12, 2009                      41
Nov 18-19, 2009,
                               Provo UT


                           Use discount code
                              Windley50
                            www.kynetx.com

Monday, October 12, 2009                       41
Sleeping Through
                               the Night
                                  Contact info:
                                 pjw@kynetx.com
                                 www.windley.com
                                    @windley
                                       FREE
                                 Context Automation
                                    White Paper
                                  at Kynetx Booth
                     Sign up free: http://www.kynetx.com/signup
Monday, October 12, 2009                                          42

Weitere ähnliche Inhalte

Andere mochten auch

Jenkins hudsonci-101002103143-phpapp02
Jenkins hudsonci-101002103143-phpapp02Jenkins hudsonci-101002103143-phpapp02
Jenkins hudsonci-101002103143-phpapp02
Praveen Pamula
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Bamdad Dashtban
 

Andere mochten auch (20)

Jenkins hudsonci-101002103143-phpapp02
Jenkins hudsonci-101002103143-phpapp02Jenkins hudsonci-101002103143-phpapp02
Jenkins hudsonci-101002103143-phpapp02
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
 
puppet @techlifecookpad
puppet @techlifecookpadpuppet @techlifecookpad
puppet @techlifecookpad
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
 
PXE Lot or PXE Lite
PXE Lot or PXE LitePXE Lot or PXE Lite
PXE Lot or PXE Lite
 
Manual pxe
Manual pxeManual pxe
Manual pxe
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
Tomcat server
 Tomcat server Tomcat server
Tomcat server
 
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMasterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM Roles
 
Cobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM DeploymentCobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM Deployment
 
The art of infrastructure elasticity
The art of infrastructure elasticityThe art of infrastructure elasticity
The art of infrastructure elasticity
 
Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )
 
Deep Dive: Amazon DynamoDB
Deep Dive: Amazon DynamoDBDeep Dive: Amazon DynamoDB
Deep Dive: Amazon DynamoDB
 
A Puppet Story
A Puppet StoryA Puppet Story
A Puppet Story
 
AWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic ScaleAWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic Scale
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Cloud computing simple ppt
Cloud computing simple pptCloud computing simple ppt
Cloud computing simple ppt
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Ähnlich wie Using Puppet and Cobbler to Automate Your Infrastructure

2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
Caue Guerra
 
Rabbitmq Boot System
Rabbitmq Boot SystemRabbitmq Boot System
Rabbitmq Boot System
Alvaro Videla
 
Cloudstack talk
Cloudstack talkCloudstack talk
Cloudstack talk
bodepd
 

Ähnlich wie Using Puppet and Cobbler to Automate Your Infrastructure (20)

Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.js
 
Fast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browserFast & Furious: Speed in the Opera browser
Fast & Furious: Speed in the Opera browser
 
Erlang for video delivery
Erlang for video deliveryErlang for video delivery
Erlang for video delivery
 
Rabbitmq Boot System
Rabbitmq Boot SystemRabbitmq Boot System
Rabbitmq Boot System
 
Kamailio on Docker
Kamailio on DockerKamailio on Docker
Kamailio on Docker
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applications
 
100% JS
100% JS100% JS
100% JS
 
Vertically Challenged
Vertically ChallengedVertically Challenged
Vertically Challenged
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
Rapid Home Provisioning
Rapid Home ProvisioningRapid Home Provisioning
Rapid Home Provisioning
 
Scaling Django Dc09
Scaling Django Dc09Scaling Django Dc09
Scaling Django Dc09
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
RubyConf 2009
RubyConf 2009RubyConf 2009
RubyConf 2009
 
Cloudstack talk
Cloudstack talkCloudstack talk
Cloudstack talk
 
Building A Framework On Rack
Building A Framework On RackBuilding A Framework On Rack
Building A Framework On Rack
 
BelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + DockerBelfastJUG, Spring Boot + Docker
BelfastJUG, Spring Boot + Docker
 
Belfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & DockerBelfast JUG, Spring Boot & Docker
Belfast JUG, Spring Boot & Docker
 
Docker & Diego - good friends or not? | anynines
Docker & Diego  - good friends or not? | anyninesDocker & Diego  - good friends or not? | anynines
Docker & Diego - good friends or not? | anynines
 

Mehr von Phil Windley

Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event Networks
Phil Windley
 

Mehr von Phil Windley (20)

Trust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityTrust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn Identity
 
A University API
A University APIA University API
A University API
 
Rule Language for IoT
Rule Language for IoTRule Language for IoT
Rule Language for IoT
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
Relationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FuseRelationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with Fuse
 
Fuse 2
Fuse 2Fuse 2
Fuse 2
 
Connecting Things
Connecting ThingsConnecting Things
Connecting Things
 
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePersistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of Cyberspace
 
Persistent Compute Objects - Picos
Persistent Compute Objects - PicosPersistent Compute Objects - Picos
Persistent Compute Objects - Picos
 
Fuse Technical Presentation
Fuse Technical PresentationFuse Technical Presentation
Fuse Technical Presentation
 
Personal Cloud Application Architectures
Personal Cloud Application ArchitecturesPersonal Cloud Application Architectures
Personal Cloud Application Architectures
 
Why Personal Clouds
Why Personal CloudsWhy Personal Clouds
Why Personal Clouds
 
Personal Cloud Operating Systems
Personal Cloud Operating SystemsPersonal Cloud Operating Systems
Personal Cloud Operating Systems
 
Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event Networks
 
The Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynoteThe Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 Keynote
 
Shaping strategies and Startups
Shaping strategies and StartupsShaping strategies and Startups
Shaping strategies and Startups
 
Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011
 
The Evented Web Makes Users Happy
The Evented Web Makes Users HappyThe Evented Web Makes Users Happy
The Evented Web Makes Users Happy
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Using Puppet and Cobbler to Automate Your Infrastructure

  • 1. Using Puppet and Cobbler to Automate Your Infrastructure Phillip J. Windley, Ph.D Founder and CTO Kynetx www.kynetx.com Monday, October 12, 2009 1
  • 2. Sleeping Through the Night Phillip J. Windley, Ph.D Founder and CTO Kynetx www.kynetx.com Monday, October 12, 2009 2
  • 4. hire fewer people Monday, October 12, 2009 4
  • 5. meet demand quickly Monday, October 12, 2009 5
  • 6. make fewer mistakes Monday, October 12, 2009 6
  • 12. 1. machine provisioning Monday, October 12, 2009 9
  • 13. 1. machine provisioning 2. system configuration Monday, October 12, 2009 9
  • 14. 1. machine provisioning 2. system configuration 3. deployment Monday, October 12, 2009 9
  • 18. machine provisioning manage images & repositories Monday, October 12, 2009 12
  • 19. machine provisioning manage images & repositories kickstart machines Monday, October 12, 2009 12
  • 20. machine provisioning manage images & repositories kickstart machines handle physical and virtual hardware Monday, October 12, 2009 12
  • 21. machine provisioning manage images & repositories kickstart machines handle physical and virtual hardware set up DHCP and DNS Monday, October 12, 2009 12
  • 23. cobbler is a collection of tools that support machine provisioning Monday, October 12, 2009 13
  • 25. cobblerd dns power dhcp Monday, October 12, 2009 14
  • 26. cobblerd dns power dhcp cobbler web repos images kickstart Monday, October 12, 2009 14
  • 27. koan cobblerd dns power dhcp cobbler web repos images kickstart Monday, October 12, 2009 14
  • 28. cobbler uses a collection of specifications that define your systems Monday, October 12, 2009 15
  • 31. profile repo distro Monday, October 12, 2009 16
  • 32. system profile repo distro Monday, October 12, 2009 16
  • 33. import a distro cobbler import --mirror ~/fc8 --name fc8 Monday, October 12, 2009 17
  • 34. import a distro cobbler import --mirror ~/fc8 --name fc8 create a profile cobbler profile add --name=base-fc8 --distro=fc8-xen-i386 --kickstart=/root/base-fc8.ks --repos=fc8-newkey-repo Monday, October 12, 2009 17
  • 35. import a distro cobbler import --mirror ~/fc8 --name fc8 create a profile cobbler profile add --name=base-fc8 --distro=fc8-xen-i386 --kickstart=/root/base-fc8.ks --repos=fc8-newkey-repo define a system cobbler system add --name=log0 --mac=00:16:3E:4B:40:00 --ip=192.168.122.180 --profile=base-fc8 --hostname=log0 Monday, October 12, 2009 17
  • 36. building a machine koan --server=cobbler.kobj.net --virt --nogfx --system=log0 Monday, October 12, 2009 18
  • 39. system configuration critical services on or off Monday, October 12, 2009 20
  • 40. system configuration critical services on or off security systems configured correctly Monday, October 12, 2009 20
  • 41. system configuration critical services on or off security systems configured correctly users created Monday, October 12, 2009 20
  • 42. system configuration critical services on or off security systems configured correctly users created necessary libraries in place Monday, October 12, 2009 20
  • 43. system configuration critical services on or off security systems configured correctly users created necessary libraries in place right packages built & installed Monday, October 12, 2009 20
  • 45. puppet is a language for specifying desired system configuration Monday, October 12, 2009 21
  • 46. install package Monday, October 12, 2009 22
  • 47. install package configure Monday, October 12, 2009 22
  • 48. install package configuration should be modified after package installation configure Monday, October 12, 2009 22
  • 49. install package configuration should be modified after package installation configure service Monday, October 12, 2009 22
  • 50. install package configuration should be modified after package installation configure service should restart whenever configuration changes service Monday, October 12, 2009 22
  • 51. the hard way yum install openssh-server vi /etc/ssh/sshd_config service sshd start Monday, October 12, 2009 23
  • 52. the puppet way class ssh { package { ssh: ensure => installed } file { sshd_config: name => “/etc/ssh/sshd_config”, owner=> root, source => “puppet://server/apps/ssh/…”, after => Package[ssh] } service { sshd: ensure => running, subscribe => [Package[ssh], File[sshd_config]] } } Monday, October 12, 2009 24
  • 53. the puppet way class ssh { package { ssh: ensure => installed } file { sshd_config: name => “/etc/ssh/sshd_config”, owner=> root, source => “puppet://server/apps/ssh/…”, after => Package[ssh] } service { sshd: ensure => running, subscribe => [Package[ssh], File[sshd_config]] } } Monday, October 12, 2009 24
  • 54. the puppet way class ssh { package { ssh: ensure => installed } file { sshd_config: name => “/etc/ssh/sshd_config”, owner=> root, source => “puppet://server/apps/ssh/…”, after => Package[ssh] } service { sshd: ensure => running, subscribe => [Package[ssh], File[sshd_config]] } } Monday, October 12, 2009 24
  • 55. wait a minute… that looks like a lot more lines to me! Monday, October 12, 2009 25
  • 58. requirements deployment happens over & over again Monday, October 12, 2009 27
  • 59. requirements deployment happens over & over again controlled, not continuous Monday, October 12, 2009 27
  • 60. requirements deployment happens over & over again controlled, not continuous role-based Monday, October 12, 2009 27
  • 61. requirements deployment happens over & over again controlled, not continuous role-based remotable Monday, October 12, 2009 27
  • 62. now for deployment... Monday, October 12, 2009 28
  • 63. now for deployment... Monday, October 12, 2009 28
  • 64. now for deployment... Monday, October 12, 2009 28
  • 65. now for deployment... Monday, October 12, 2009 28
  • 66. in the end… I just wrote it in Perl in a few hours Monday, October 12, 2009 29
  • 67. [root@ops deploy]# ./deploy.pl -d The following tasks are configured: deploy | Export a new copy of the code install | deploy, initialize, restart uninstall | rollback code, initialize,restart start_httpd | Start the HTTP server rollback | Rollback to the deploy stop_httpd | Stop the HTTP server test_server | Run the appropriate server test cleanup | Remove old copies of code test_code | Run the all tests configure_httpd| Build the httpd.conf file install_init | Install the init JS files restart_httpd | Restart the HTTP server Monday, October 12, 2009 30
  • 68. [root@ops deploy]# ./deploy.pl -s server | version -----------------------|---------------- init0.kobj.net | 340M init1.kobj.net | 340M log.kobj.net | 340 log0.kobj.net | 340 log1.kobj.net | 340 krl.kobj.net | 340 cs0.kobj.net | 341 cs1.kobj.net | 341 cs2.kobj.net | 341 cs3.kobj.net | 341 Monday, October 12, 2009 31
  • 69. [root@ops deploy]# ./deploy.pl -m krl -t install Performing install on krl with role krl... A /web/lib/releases/perl_0910091229/ops ... A /web/lib/releases/perl_0910091229/startup.pl A /web/lib/releases/perl_0910091229/Kynetx.pm A /web/lib/releases/perl_0910091229/README Checked out revision 342. Writing /web/conf/httpd.conf Stopping httpd: [ OK ] Starting httpd: [ OK ] Testing RuleManager.....ok All tests successful. Files=1, Tests=73, 8 wallclock secs ... Result: PASS Monday, October 12, 2009 32
  • 71. TODO configuration database Monday, October 12, 2009 33
  • 72. TODO configuration database (more) automated testing Monday, October 12, 2009 33
  • 73. TODO configuration database (more) automated testing continuous integration Monday, October 12, 2009 33
  • 76. kynetx can stand up a new server in < 30 minutes Monday, October 12, 2009 36
  • 77. our servers stay up downtime* 0.00229% uptime 99.99772% * includes scheduled maintenance Monday, October 12, 2009 37
  • 81. lessons learned architect for (afford|scal|reli)ability Monday, October 12, 2009 39
  • 82. lessons learned architect for (afford|scal|reli)ability insist on consistency & repeatability Monday, October 12, 2009 39
  • 83. lessons learned architect for (afford|scal|reli)ability insist on consistency & repeatability document process with code Monday, October 12, 2009 39
  • 84. lessons learned architect for (afford|scal|reli)ability insist on consistency & repeatability document process with code rolling releases and change control Monday, October 12, 2009 39
  • 85. lessons learned architect for (afford|scal|reli)ability insist on consistency & repeatability document process with code rolling releases and change control put ops procedures online Monday, October 12, 2009 39
  • 86. learning more Introduction to Cobbler Derek Carter 2:30 Puppet Workshop Andrew Shafer 3:00 Managing your minions with func Daniel Hanks 3:45 Cobbler power tools Derek Carter 5:00 Monday, October 12, 2009 40
  • 87. Nov 18-19, 2009, Provo UT Monday, October 12, 2009 41
  • 88. Nov 18-19, 2009, Provo UT Use discount code Windley50 www.kynetx.com Monday, October 12, 2009 41
  • 89. Sleeping Through the Night Contact info: pjw@kynetx.com www.windley.com @windley FREE Context Automation White Paper at Kynetx Booth Sign up free: http://www.kynetx.com/signup Monday, October 12, 2009 42