SlideShare a Scribd company logo
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

More Related Content

PDF
Using cobbler in a not so small environment 1.77
PDF
Inside the Atlassian OnDemand Private Cloud
PDF
Improving Your Heroku App Performance with Asset CDN and Unicorn
PPTX
Netbackup 6.5 backup process
PDF
Accelerate Your Rails Site with Automatic Generation-Based Action Caching
PDF
The State of Puppet
PDF
NFD9 - Matt Peterson, Data Center Operations
PDF
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Using cobbler in a not so small environment 1.77
Inside the Atlassian OnDemand Private Cloud
Improving Your Heroku App Performance with Asset CDN and Unicorn
Netbackup 6.5 backup process
Accelerate Your Rails Site with Automatic Generation-Based Action Caching
The State of Puppet
NFD9 - Matt Peterson, Data Center Operations
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack

Viewers also liked (19)

PDF
Jenkins hudsonci-101002103143-phpapp02
PDF
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
KEY
puppet @techlifecookpad
PDF
Cobbler, Func and Puppet: Tools for Large Scale Environments
PDF
Build Automation 101
PDF
PDF
Manual pxe
PDF
Cobbler - Fast and reliable multi-OS provisioning
PPT
Tomcat server
PDF
Masterless Puppet Using AWS S3 Buckets and IAM Roles
ODP
Cobbler Summit - Automated Xen VM Deployment
PDF
The art of infrastructure elasticity
PDF
Auto scaling using Amazon Web Services ( AWS )
PDF
A Puppet Story
PDF
AWS + Puppet = Dynamic Scale
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
PPTX
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
PPT
Cloud computing simple ppt
PDF
Visual Design with Data
Jenkins hudsonci-101002103143-phpapp02
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
puppet @techlifecookpad
Cobbler, Func and Puppet: Tools for Large Scale Environments
Build Automation 101
Manual pxe
Cobbler - Fast and reliable multi-OS provisioning
Tomcat server
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Cobbler Summit - Automated Xen VM Deployment
The art of infrastructure elasticity
Auto scaling using Amazon Web Services ( AWS )
A Puppet Story
AWS + Puppet = Dynamic Scale
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Cloud computing simple ppt
Visual Design with Data
Ad

Similar to Using Puppet and Cobbler to Automate Your Infrastructure (20)

PDF
Cloudera Desktop
PDF
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
PDF
Big app design for Node.js
PDF
Fast & Furious: Speed in the Opera browser
PDF
Erlang for video delivery
PDF
Rabbitmq Boot System
PDF
Kamailio on Docker
PDF
Architecting large Node.js applications
PDF
100% JS
PDF
Vertically Challenged
PDF
Cloud Foundry Bootcamp
PDF
Rapid Home Provisioning
PDF
Scaling Django Dc09
PPTX
Docker introduction for the beginners
PDF
RubyConf 2009
PDF
Cloudstack talk
PDF
Building A Framework On Rack
PDF
Belfast JUG, Spring Boot & Docker
PDF
BelfastJUG, Spring Boot + Docker
PPTX
Docker & Diego - good friends or not? | anynines
Cloudera Desktop
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
Big app design for Node.js
Fast & Furious: Speed in the Opera browser
Erlang for video delivery
Rabbitmq Boot System
Kamailio on Docker
Architecting large Node.js applications
100% JS
Vertically Challenged
Cloud Foundry Bootcamp
Rapid Home Provisioning
Scaling Django Dc09
Docker introduction for the beginners
RubyConf 2009
Cloudstack talk
Building A Framework On Rack
Belfast JUG, Spring Boot & Docker
BelfastJUG, Spring Boot + Docker
Docker & Diego - good friends or not? | anynines
Ad

More from Phil Windley (20)

PPTX
Trust, Blockchains, and Self-Soveriegn Identity
PPTX
A University API
PDF
Rule Language for IoT
PDF
Events, Picos, and Microservices
PDF
Picos, CloudOS, and Connecting Things
PDF
Events, Picos, and Microservices
PDF
Relationships: Modeling the Vehicle Ecosystem with Fuse
PDF
Fuse 2
PDF
Connecting Things
PDF
Persistent Compute Objects and the Fabric of Cyberspace
PDF
Persistent Compute Objects - Picos
PDF
Fuse Technical Presentation
PDF
Personal Cloud Application Architectures
KEY
Why Personal Clouds
KEY
Personal Cloud Operating Systems
KEY
Introducing Personal Event Networks
KEY
The Live Web #SCITDA11 Keynote
KEY
Shaping strategies and Startups
KEY
Shaping Strategies and the Live Web - Kynetx Impact 2011
PDF
The Evented Web Makes Users Happy
Trust, Blockchains, and Self-Soveriegn Identity
A University API
Rule Language for IoT
Events, Picos, and Microservices
Picos, CloudOS, and Connecting Things
Events, Picos, and Microservices
Relationships: Modeling the Vehicle Ecosystem with Fuse
Fuse 2
Connecting Things
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects - Picos
Fuse Technical Presentation
Personal Cloud Application Architectures
Why Personal Clouds
Personal Cloud Operating Systems
Introducing Personal Event Networks
The Live Web #SCITDA11 Keynote
Shaping strategies and Startups
Shaping Strategies and the Live Web - Kynetx Impact 2011
The Evented Web Makes Users Happy

Recently uploaded (20)

PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Machine learning based COVID-19 study performance prediction
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
NewMind AI Weekly Chronicles - August'25 Week I
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Reach Out and Touch Someone: Haptics and Empathic Computing
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
Chapter 3 Spatial Domain Image Processing.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine learning based COVID-19 study performance prediction

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