SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Seat Internet Factory Tech Talk 5
Tempus fugit




Setup. Configure. Deploy. Troubleshoot. Fix.
Panta rei




Emails. Tickets. Calls. Meetings.
Mala
tempora
currunt



cat /etc/issue
Debian 4
Errare
humanum est...



rm /var/log/messages
perseverare
autem
diabolicum



chmod -R 777 ; su nobody ; rm -rf .
Alea iacta est




Hope driven release management.
Devs Versus Ops




D: Can you copy /ldap/dritchie/spes.war to prod?   O: Open a Ticket.
O tempora
o mores!


Big efforts for small outputs
Spes ultima dea
        Have you heard about this Puppet thing?
Repetitia iuvant
Machines automate better
Gratis




OpenSource from www.puppetlabs.com
Cui prodest?




               Source: www.puppetlabs.com
Divide
                      et
                    impera
Many Puppet nodes            One Puppet Master
package { 'openssh-server':

Status Quo                            }
                                          ensure => present,
                                          before => File['/etc/ssh/sshd_config'],


“A declarative language to describe   file { '/etc/ssh/sshd_config':
system status”                            ensure => file,
                                          mode   => 600,
                                          source => '/root/learning-manifests/sshd_config',
                                      }

                                      service { 'sshd':
                                          ensure     => running,
                                          enable     => true,
                                          subscribe => File['/etc/ssh/sshd_config'],
                                      }
Veni vidi vici
                 puppet apply
Deus
Ex
Machina


# This File is Managed by Puppet
Mater semper
 certa est,
 pater nunquam
 O: Who changed that file?!




info: Filebucket[/var/lib/puppet/clientbucket]: Adding /etc/resolv.conf
(d7fbc1695489ce896d30b7b04d72887c)
info: //test/File[/etc/resolv.conf]: Filebucketed /etc/resolv.conf to main with sum
d7fbc1695489ce896d30b7b04d72887c
notice: //test/File[/etc/resolv.conf]/content: content changed '{md5}
d7fbc1695489ce896d30b7b04d72887c' to '{md5}
958836dd057fdbb33597d688cc6d28a2'
Ex novo




Provision from scratch.
Doctum
doces




Infrastructure as code
Scripta manent,
verba volant




svn ci -m “Ticket #777”
Factotum




P: I manage. Almost everything.
Ignorantia legis
non excusat




Once you Puppettize, you Puppettize
Sperimentazione iniziata nel 2010
Implementazione sistematica su nuovi server da Ottobre 2010
Conversione / Upgrade sistemi esistenti in corso.
Produzione a Rozzano - Sistemi gestiti: 167 (growing):
- Pagine Bianche
- Banners
- E-Commerce, Scioppy
- Tools PL, Iglu, Spysite, Routing, Fotocontest, Iglu ...
- Sistemi infrastrutturali (Dns, Syslog, Deploy, Ldap (soon) )
- Sistemi di monitoring (Nagios, Munin)

Disaster Recovery - Sistemi gestiti: 34:
- Pagine Gialle (Intera filiera)
- Sistemi infrastrutturali (Dns, Syslog, Deploy, Ldap)
- Sistemi di monitoring (Nagios, Munin)
# Base node
node basenode {
    $dns_servers = ["192.168.39.42","192.168.39.43"]
    $syslog_server = "syslog-1.pgol.com"
    $type = "prod" # We assume that most of nodes are of prod(ution) type.
    $users_auth = "ldap" # By default we want ldap auth
[...]
}

# Rozzano Production site
node rozzano inherits basenode {
    $site = "rozzano"
    $ntp_server = ["ntp1.pgol.com","ntp2.pgol.com"]
}

node rozzano-dmz inherits rozzano {
    $zone = "dmz"
    $users_auth = "local" # No ldap auth for users in DMZ servers
}

node rozzano-erog inherits rozzano {
    $zone = "erog"
}

# Disaster recovery Site
node dr inherits basenode {
    $site = "dr"
    $dns_servers = ["192.168.50.10","192.168.50.11"]
[...]
# FRONTEND BIANCO                            # CLUSTER CASSANDRA DEV
node 'fep-pbit-1' inherits rozzano-erog {    node 'dev-cassandra-1b' inherits rozzano-
    include role_fep-pbit                    erog {
}                                            !     $type = "dev"
                                             !     include role_cassandra
node 'fep-pbit-2' inherits rozzano-erog {    }
    include role_fep-pbit                    [...]
}
                                             # CLUSTER CASSANDRA TEST
[...]                                        node 'test-cassandra-1' inherits rozzano-
                                             erog {
node 'test-pbit-1' inherits rozzano-erog {   !     $type = "test"
    $type = "test"                           !     include role_cassandra
    include role_fep-pbit                    }
}                                            [...]


[...]                                        # CLUSTER CASSANDRA PROD
                                             node 'cassandra-1' inherits rozzano-erog {
                                             !     include role_cassandra
                                             }

                                             [...]

                                             node 'cassandra-5' inherits rozzano-erog {
                                             !     $has_batch = "true"
                                             !     include role_cassandra
                                             }
class general {
    include distro
    include profile
    include puppet
    include motd
    include users
    include openssh
    include hosts
    include resolver
    include monit
    include sudo
    include snmpd
    include nrpe
    include munin
    include rsync
    include basedirs

    case $operatingsystem {
        ubuntu,debian: {
        # Moduli attualmente funzionanti solo su Ubuntu/Debian
            include exim
            include openntpd
            include apt
            include rsyslog
            include unattended-upgrades
            include hardware
    }
        centos,redhat: {
            include yum
        }
        default: { }
    }
}
class role_fep-pbit {
    $role="fep-pbit"

    include general
    include nfs::client::fep-pbit

    include apache
    include apache::seat::fep-pbit
    include php::pear
    include php::dev
    include php::oci8
    include apache::spidertrap
    apache::module { "rewrite": }
    apache::module { "proxy": templatefile => "proxy.conf.erb" }
    php::module { "gd": }
    php::pear::module { "apc": }
    php::pear::module { "XML_Serializer": use_package => "no" }
    php::pecl::config { "http_proxy": value => "$proxy_server" }
    [...]

    # Monitoring
    include monitor::seat::url_fep-pbit

    # Deploy
    puppi::project::files { "fep-pbit":
        source           => "http://deploy.${domain}/fep-pbit/deploylist.txt",
        [...]
    }
}
class apache::monitor {

    # Port monitoring
    monitor::port { "apache_${apache::params::protocol}_${apache::params::port}":
        protocol => "${apache::params::protocol}",
        port     => "${apache::params::port}",
        target   => "${apache::params::monitor_target_real}",
        enable   => "${apache::params::monitor_port_enable}",
        tool     => "${monitor_tool}",
    }

    # Process monitoring
    monitor::process { "apache_process":
        process => "${apache::params::processname}",
        service => "${apache::params::servicename}",
        pidfile => "${apache::params::pidfile}",
        enable   => "${apache::params::monitor_process_enable}",
        tool     => "${monitor_tool}",
    }

    [...]

}
$monitor="yes"
$monitor_tool=["monit","nagios","puppi",”munin”]
class monitor::seat::url_fep-pbit {

# 1240
    monitor::url { "Url-1240_PREFFISSI_INTERNAZIONALI":
        url      => "http://1240.paginebianche.it/execute.cgi?
ts=9&cb=18&btt=1&nz=CANADA&l=it",
        port     => '80',
        target   => "${fqdn}",
        pattern => '01139',
        enable   => "true",
        tool     => "${monitor_tool}",
    }

    monitor::url { "Url-1240_RICERCA_LOCALITA_E_CAP_PER_PREFISSO":
        url      => "http://1240.paginebianche.it/execute.cgi?
ts=19&cb=18&btt=1&prefisso=0744&l=it",
        port     => '80',
        target   => "${fqdn}",
        pattern => 'Terni',
        enable   => "true",
        tool     => "${monitor_tool}",
    }
    [...]

}
root@fep-pbit-1:~# puppi check
Host check: 50-Url-1240_PREFFISSI_INTERNAZIONALI           [ OK ]
HTTP OK: HTTP/1.1 200 OK - 25285 bytes in 0.193 second response time |time=0.192856s;;;
0.000000 size=25285B;;;0

Host check: 50-Url-1240_RICERCA_LOCALITA_E_CAP_PER_PREFISSO[ OK ]
HTTP OK: HTTP/1.1 200 OK - 12417 bytes in 0.071 second response time |time=0.070648s;;;
0.000000 size=12417B;;;0

Host check: 50-Url-1240_RICERCA_LOCALITA_PER_CAP           [ OK ]
HTTP OK: HTTP/1.1 200 OK - 12641 bytes in 0.048 second response time |time=0.048381s;;;
0.000000 size=12641B;;;0

[...]

Host check: 50-Mount__store_www.paginebianche.it_doc_root_g[ OK ]
/store/www.paginebianche.it/doc_root/gclight is mounted! Type is nfs

Host check: 50-apache_process                              [   OK   ]
PROCS OK: 540 processes with command name 'apache2'

Host check: 50-apache_tcp_80                               [ OK ]
TCP OK - 0.000 second response time on port 80|time=0.000250s;;;0.000000;10.000000

Host check: 50-openssh_process                             [   OK   ]
PROCS OK: 3 processes with command name 'sshd'

Host check: 50-openssh_tcp_22                              [ OK ]
TCP OK - 0.000 second response time on port 22|time=0.000151s;;;0.000000;10.000000
root@metaportali-mpc:~# puppi deploy configurator
Puppi setup: 00-configurator-RuntimeConfig-Initialization   [   OK   ]

Deploy: 10-configurator-Run_PRE-Checks                      [   OK   ]
[...]
Deploy: 20-configurator-Retrieve_WAR                        [   OK   ]

Deploy: 30-configurator-Backup_existing_WAR                 [   OK   ]

Deploy: 36-configurator-Disable_extra_services              [   OK   ]
[...]
Deploy: 37-configurator-Check_undeploy                      [   OK   ]

Deploy: 38-configurator-Service_stop                        [   OK   ]
[...]
Deploy: 39-configurator-Run_Custom_PreDeploy_Script         [   OK   ]

Deploy: 40-configurator-Deploy_WAR                          [   OK   ]

Deploy: 42-configurator-Service_start                       [   OK   ]
[...]
Deploy: 43-configurator-Check_deploy                        [   OK   ]

Deploy: 44-configurator-Enable_extra_services               [   OK   ]
[...]
Deploy: 80-configurator-Run_POST-Checks                     [   OK   ]
[...]
Reporting: 20-configurator-Mail_Notification                [   OK   ]

REPORT FOR PUPPI - STATUS OK
Summary of operations is: /var/log/puppi/configurator/20110303-145104/summary
Details are in: /var/log/puppi/configurator/20110303-145104/
Temporary workdir has been: /tmp/puppi/configurator/ (Will be rewritten at the next puppi run)
Runtime config file is: /tmp/puppi/configurator/config
Files have been archived in: /var/lib/puppi/archive/configurator/20110303-145104
root@fep-pbit-1:~# puppi rollback fep-pbit
Puppi setup: 00-fep-pbit-RuntimeConfig-Initialization            [   OK   ]



Choose deploy to rollback:
total 24
drwxr-xr-x 2 root root 4096   2011-02-17   17:25   20110217-172418
drwxr-xr-x 2 root root 4096   2011-02-24   17:18   20110224-171656
drwxr-xr-x 2 root root 4096   2011-02-28   16:54   20110228-165323
drwxr-xr-x 2 root root 4096   2011-03-01   17:01   20110301-170009
drwxr-xr-x 2 root root 4096   2011-03-01   17:13   20110301-171339
drwxr-xr-x 2 root root 4096   2011-03-01   17:16   20110301-171607
lrwxrwxrwx 1 root root   47   2011-03-01   17:16   latest -> /var/lib/puppi/archive/fep-pbit/
20110301-171607

[...]
class role_mpc-metaportale {
    $role="mpc-metaportale"
[...]

    puppi::project::war { "configurator":
        source           => "http://deploy.pgol.com/mpc-metaportale/configurator.war",
        user             => "www-data",
        init_script      => "tomcat-mpc",
        predeploy_customcommand => "rm -rf /store/tomcat/mpc/webapps/*",
        predeploy_user   => "root",
        predeploy_priority => "39",
        deploy_root      => "/store/tomcat/mpc/webapps",
        report_email     => "release_engineering@seat.it,webdesign@paginegialle.it",
        enable           => "true",
        disable_services => "monit puppet",
    }
                                       root@metaportali-mpc:~# puppi deploy configurator
}                                      Puppi setup: 00-configurator-RuntimeConfig-Initialization   [   OK   ]

                                       Deploy: 10-configurator-Run_PRE-Checks                      [   OK   ]
                                       [...]
                                       Deploy: 20-configurator-Retrieve_WAR                        [   OK   ]

                                       Deploy: 30-configurator-Backup_existing_WAR                 [   OK   ]

                                       Deploy: 36-configurator-Disable_extra_services              [   OK   ]
                                       [...]
                                       Deploy: 37-configurator-Check_undeploy                      [   OK   ]

                                       Deploy: 38-configurator-Service_stop                        [   OK   ]
                                       [...]
                                       Deploy: 39-configurator-Run_Custom_PreDeploy_Script         [   OK   ]

                                       Deploy: 40-configurator-Deploy_WAR                          [   OK   ]

                                       Deploy: 42-configurator-Service_start                       [   OK   ]
                                       [...]
                                       Deploy: 43-configurator-Check_deploy                        [   OK   ]

                                       Deploy: 44-configurator-Enable_extra_services               [   OK   ]
                                       [...]
                                       Deploy: 80-configurator-Run_POST-Checks                     [   OK   ]
                                       [...]
                                       Reporting: 20-configurator-Mail_Notification                [   OK   ]

                                       REPORT FOR PUPPI - STATUS OK
                                       Summary of operations is: /var/log/puppi/configurator/20110303-145104/summary
                                       [...]
Faster Setups
                      Do ut des                    Tested code
Quick Scalability                             Url based checks
Deployment Agility                    Site Aware configurations
Testing Environment               Standardized deploy requests
In medio stat virtus
 Share needs, constraints, knowledge and skills
Hic
manebimus
 optime
 Cooperation is fun
Full Infrastructure Automation
Unified Infrastructure Reporting   Per aspera ad astra
Self Service Release Management
AutoTesting Release Workflow




                                         Add here your wildest (IT) dream...
ad maiora




            Graphics: www.tatlin.net

Mais conteúdo relacionado

Mais procurados

Doing It Wrong with Puppet -
Doing It Wrong with Puppet - Doing It Wrong with Puppet -
Doing It Wrong with Puppet - Puppet
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next levelAlessandro Franceschi
 
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksHow to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksCarlos Sanchez
 
Essential applications management with Tiny Puppet
Essential applications management with Tiny PuppetEssential applications management with Tiny Puppet
Essential applications management with Tiny PuppetAlessandro Franceschi
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Puppet
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with AugeasPuppet
 
PECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life betterPECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life betterZendCon
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)julien pauli
 
Puppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooPuppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooDennis Rowe
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Puppet
 
Puppet Module Reusability - What I Learned from Shipping to the Forge
Puppet Module Reusability - What I Learned from Shipping to the ForgePuppet Module Reusability - What I Learned from Shipping to the Forge
Puppet Module Reusability - What I Learned from Shipping to the ForgePuppet
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
 
Puppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachPuppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachAlessandro Franceschi
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0Tim Bunce
 

Mais procurados (20)

Doing It Wrong with Puppet -
Doing It Wrong with Puppet - Doing It Wrong with Puppet -
Doing It Wrong with Puppet -
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next level
 
Puppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutesPuppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutes
 
Intro to-puppet
Intro to-puppetIntro to-puppet
Intro to-puppet
 
Troubleshooting Puppet
Troubleshooting PuppetTroubleshooting Puppet
Troubleshooting Puppet
 
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero ClicksHow to Develop Puppet Modules: From Source to the Forge With Zero Clicks
How to Develop Puppet Modules: From Source to the Forge With Zero Clicks
 
Essential applications management with Tiny Puppet
Essential applications management with Tiny PuppetEssential applications management with Tiny Puppet
Essential applications management with Tiny Puppet
 
Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...Replacing "exec" with a type and provider: Return manifests to a declarative ...
Replacing "exec" with a type and provider: Return manifests to a declarative ...
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with Augeas
 
PECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life betterPECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life better
 
Spl in the wild
Spl in the wildSpl in the wild
Spl in the wild
 
Puppet fundamentals
Puppet fundamentalsPuppet fundamentals
Puppet fundamentals
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
 
Puppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, tooPuppet loves RSpec, why you should, too
Puppet loves RSpec, why you should, too
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014
 
Building Custom PHP Extensions
Building Custom PHP ExtensionsBuilding Custom PHP Extensions
Building Custom PHP Extensions
 
Puppet Module Reusability - What I Learned from Shipping to the Forge
Puppet Module Reusability - What I Learned from Shipping to the ForgePuppet Module Reusability - What I Learned from Shipping to the Forge
Puppet Module Reusability - What I Learned from Shipping to the Forge
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnApp
 
Puppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachPuppet modules: An Holistic Approach
Puppet modules: An Holistic Approach
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0
 

Semelhante a Puppet @ Seat

Stanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesStanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesPuppet
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStackBram Vogelaar
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Puppet
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
Linuxday.at - Lightning Talk
Linuxday.at - Lightning TalkLinuxday.at - Lightning Talk
Linuxday.at - Lightning TalkJan Gehring
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasaggarrett honeycutt
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Simon McCartney
 
Puppet: What _not_ to do
Puppet: What _not_ to doPuppet: What _not_ to do
Puppet: What _not_ to doPuppet
 

Semelhante a Puppet @ Seat (20)

Stanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet ModulesStanford Hackathon - Puppet Modules
Stanford Hackathon - Puppet Modules
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStack
 
Puppet
PuppetPuppet
Puppet
 
Puppet
PuppetPuppet
Puppet
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Puppet Camp 2012
Puppet Camp 2012Puppet Camp 2012
Puppet Camp 2012
 
EC2
EC2EC2
EC2
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
Linuxday.at - Lightning Talk
Linuxday.at - Lightning TalkLinuxday.at - Lightning Talk
Linuxday.at - Lightning Talk
 
Ubic
UbicUbic
Ubic
 
Ubic-public
Ubic-publicUbic-public
Ubic-public
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013
 
Puppet: What _not_ to do
Puppet: What _not_ to doPuppet: What _not_ to do
Puppet: What _not_ to do
 

Mais de Alessandro Franceschi

Mais de Alessandro Franceschi (12)

Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 
DevOps - Evoluzione della specie - DevOps Heroes.pdf
DevOps - Evoluzione della specie - DevOps Heroes.pdfDevOps - Evoluzione della specie - DevOps Heroes.pdf
DevOps - Evoluzione della specie - DevOps Heroes.pdf
 
Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!
 
Ten years of [Puppet] installations. What now?
Ten years of [Puppet] installations. What now?Ten years of [Puppet] installations. What now?
Ten years of [Puppet] installations. What now?
 
Puppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitPuppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction Kit
 
Puppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLabPuppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLab
 
Tp install anything
Tp install anythingTp install anything
Tp install anything
 
Puppet evolutions
Puppet evolutionsPuppet evolutions
Puppet evolutions
 
Raise the bar! Reloaded
Raise the bar! ReloadedRaise the bar! Reloaded
Raise the bar! Reloaded
 
Raise the bar!
Raise the bar!Raise the bar!
Raise the bar!
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
Spaghetti devops
Spaghetti devopsSpaghetti devops
Spaghetti devops
 

Último

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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...Igalia
 
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.pdfEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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.pptxEarley Information Science
 
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...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Puppet @ Seat

  • 1. Seat Internet Factory Tech Talk 5
  • 2.
  • 3. Tempus fugit Setup. Configure. Deploy. Troubleshoot. Fix.
  • 4. Panta rei Emails. Tickets. Calls. Meetings.
  • 8. Alea iacta est Hope driven release management.
  • 9. Devs Versus Ops D: Can you copy /ldap/dritchie/spes.war to prod? O: Open a Ticket.
  • 10. O tempora o mores! Big efforts for small outputs
  • 11. Spes ultima dea Have you heard about this Puppet thing?
  • 12.
  • 15. Cui prodest? Source: www.puppetlabs.com
  • 16. Divide et impera Many Puppet nodes One Puppet Master
  • 17. package { 'openssh-server': Status Quo } ensure => present, before => File['/etc/ssh/sshd_config'], “A declarative language to describe file { '/etc/ssh/sshd_config': system status” ensure => file, mode => 600, source => '/root/learning-manifests/sshd_config', } service { 'sshd': ensure => running, enable => true, subscribe => File['/etc/ssh/sshd_config'], }
  • 18. Veni vidi vici puppet apply
  • 19. Deus Ex Machina # This File is Managed by Puppet
  • 20. Mater semper certa est, pater nunquam O: Who changed that file?! info: Filebucket[/var/lib/puppet/clientbucket]: Adding /etc/resolv.conf (d7fbc1695489ce896d30b7b04d72887c) info: //test/File[/etc/resolv.conf]: Filebucketed /etc/resolv.conf to main with sum d7fbc1695489ce896d30b7b04d72887c notice: //test/File[/etc/resolv.conf]/content: content changed '{md5} d7fbc1695489ce896d30b7b04d72887c' to '{md5} 958836dd057fdbb33597d688cc6d28a2'
  • 23. Scripta manent, verba volant svn ci -m “Ticket #777”
  • 24. Factotum P: I manage. Almost everything.
  • 25. Ignorantia legis non excusat Once you Puppettize, you Puppettize
  • 26.
  • 27. Sperimentazione iniziata nel 2010 Implementazione sistematica su nuovi server da Ottobre 2010 Conversione / Upgrade sistemi esistenti in corso. Produzione a Rozzano - Sistemi gestiti: 167 (growing): - Pagine Bianche - Banners - E-Commerce, Scioppy - Tools PL, Iglu, Spysite, Routing, Fotocontest, Iglu ... - Sistemi infrastrutturali (Dns, Syslog, Deploy, Ldap (soon) ) - Sistemi di monitoring (Nagios, Munin) Disaster Recovery - Sistemi gestiti: 34: - Pagine Gialle (Intera filiera) - Sistemi infrastrutturali (Dns, Syslog, Deploy, Ldap) - Sistemi di monitoring (Nagios, Munin)
  • 28. # Base node node basenode { $dns_servers = ["192.168.39.42","192.168.39.43"] $syslog_server = "syslog-1.pgol.com" $type = "prod" # We assume that most of nodes are of prod(ution) type. $users_auth = "ldap" # By default we want ldap auth [...] } # Rozzano Production site node rozzano inherits basenode { $site = "rozzano" $ntp_server = ["ntp1.pgol.com","ntp2.pgol.com"] } node rozzano-dmz inherits rozzano { $zone = "dmz" $users_auth = "local" # No ldap auth for users in DMZ servers } node rozzano-erog inherits rozzano { $zone = "erog" } # Disaster recovery Site node dr inherits basenode { $site = "dr" $dns_servers = ["192.168.50.10","192.168.50.11"] [...]
  • 29. # FRONTEND BIANCO # CLUSTER CASSANDRA DEV node 'fep-pbit-1' inherits rozzano-erog { node 'dev-cassandra-1b' inherits rozzano- include role_fep-pbit erog { } ! $type = "dev" ! include role_cassandra node 'fep-pbit-2' inherits rozzano-erog { } include role_fep-pbit [...] } # CLUSTER CASSANDRA TEST [...] node 'test-cassandra-1' inherits rozzano- erog { node 'test-pbit-1' inherits rozzano-erog { ! $type = "test" $type = "test" ! include role_cassandra include role_fep-pbit } } [...] [...] # CLUSTER CASSANDRA PROD node 'cassandra-1' inherits rozzano-erog { ! include role_cassandra } [...] node 'cassandra-5' inherits rozzano-erog { ! $has_batch = "true" ! include role_cassandra }
  • 30. class general { include distro include profile include puppet include motd include users include openssh include hosts include resolver include monit include sudo include snmpd include nrpe include munin include rsync include basedirs case $operatingsystem { ubuntu,debian: { # Moduli attualmente funzionanti solo su Ubuntu/Debian include exim include openntpd include apt include rsyslog include unattended-upgrades include hardware } centos,redhat: { include yum } default: { } } }
  • 31. class role_fep-pbit { $role="fep-pbit" include general include nfs::client::fep-pbit include apache include apache::seat::fep-pbit include php::pear include php::dev include php::oci8 include apache::spidertrap apache::module { "rewrite": } apache::module { "proxy": templatefile => "proxy.conf.erb" } php::module { "gd": } php::pear::module { "apc": } php::pear::module { "XML_Serializer": use_package => "no" } php::pecl::config { "http_proxy": value => "$proxy_server" } [...] # Monitoring include monitor::seat::url_fep-pbit # Deploy puppi::project::files { "fep-pbit": source => "http://deploy.${domain}/fep-pbit/deploylist.txt", [...] } }
  • 32. class apache::monitor { # Port monitoring monitor::port { "apache_${apache::params::protocol}_${apache::params::port}": protocol => "${apache::params::protocol}", port => "${apache::params::port}", target => "${apache::params::monitor_target_real}", enable => "${apache::params::monitor_port_enable}", tool => "${monitor_tool}", } # Process monitoring monitor::process { "apache_process": process => "${apache::params::processname}", service => "${apache::params::servicename}", pidfile => "${apache::params::pidfile}", enable => "${apache::params::monitor_process_enable}", tool => "${monitor_tool}", } [...] }
  • 34. class monitor::seat::url_fep-pbit { # 1240 monitor::url { "Url-1240_PREFFISSI_INTERNAZIONALI": url => "http://1240.paginebianche.it/execute.cgi? ts=9&cb=18&btt=1&nz=CANADA&l=it", port => '80', target => "${fqdn}", pattern => '01139', enable => "true", tool => "${monitor_tool}", } monitor::url { "Url-1240_RICERCA_LOCALITA_E_CAP_PER_PREFISSO": url => "http://1240.paginebianche.it/execute.cgi? ts=19&cb=18&btt=1&prefisso=0744&l=it", port => '80', target => "${fqdn}", pattern => 'Terni', enable => "true", tool => "${monitor_tool}", } [...] }
  • 35.
  • 36. root@fep-pbit-1:~# puppi check Host check: 50-Url-1240_PREFFISSI_INTERNAZIONALI [ OK ] HTTP OK: HTTP/1.1 200 OK - 25285 bytes in 0.193 second response time |time=0.192856s;;; 0.000000 size=25285B;;;0 Host check: 50-Url-1240_RICERCA_LOCALITA_E_CAP_PER_PREFISSO[ OK ] HTTP OK: HTTP/1.1 200 OK - 12417 bytes in 0.071 second response time |time=0.070648s;;; 0.000000 size=12417B;;;0 Host check: 50-Url-1240_RICERCA_LOCALITA_PER_CAP [ OK ] HTTP OK: HTTP/1.1 200 OK - 12641 bytes in 0.048 second response time |time=0.048381s;;; 0.000000 size=12641B;;;0 [...] Host check: 50-Mount__store_www.paginebianche.it_doc_root_g[ OK ] /store/www.paginebianche.it/doc_root/gclight is mounted! Type is nfs Host check: 50-apache_process [ OK ] PROCS OK: 540 processes with command name 'apache2' Host check: 50-apache_tcp_80 [ OK ] TCP OK - 0.000 second response time on port 80|time=0.000250s;;;0.000000;10.000000 Host check: 50-openssh_process [ OK ] PROCS OK: 3 processes with command name 'sshd' Host check: 50-openssh_tcp_22 [ OK ] TCP OK - 0.000 second response time on port 22|time=0.000151s;;;0.000000;10.000000
  • 37. root@metaportali-mpc:~# puppi deploy configurator Puppi setup: 00-configurator-RuntimeConfig-Initialization [ OK ] Deploy: 10-configurator-Run_PRE-Checks [ OK ] [...] Deploy: 20-configurator-Retrieve_WAR [ OK ] Deploy: 30-configurator-Backup_existing_WAR [ OK ] Deploy: 36-configurator-Disable_extra_services [ OK ] [...] Deploy: 37-configurator-Check_undeploy [ OK ] Deploy: 38-configurator-Service_stop [ OK ] [...] Deploy: 39-configurator-Run_Custom_PreDeploy_Script [ OK ] Deploy: 40-configurator-Deploy_WAR [ OK ] Deploy: 42-configurator-Service_start [ OK ] [...] Deploy: 43-configurator-Check_deploy [ OK ] Deploy: 44-configurator-Enable_extra_services [ OK ] [...] Deploy: 80-configurator-Run_POST-Checks [ OK ] [...] Reporting: 20-configurator-Mail_Notification [ OK ] REPORT FOR PUPPI - STATUS OK Summary of operations is: /var/log/puppi/configurator/20110303-145104/summary Details are in: /var/log/puppi/configurator/20110303-145104/ Temporary workdir has been: /tmp/puppi/configurator/ (Will be rewritten at the next puppi run) Runtime config file is: /tmp/puppi/configurator/config Files have been archived in: /var/lib/puppi/archive/configurator/20110303-145104
  • 38. root@fep-pbit-1:~# puppi rollback fep-pbit Puppi setup: 00-fep-pbit-RuntimeConfig-Initialization [ OK ] Choose deploy to rollback: total 24 drwxr-xr-x 2 root root 4096 2011-02-17 17:25 20110217-172418 drwxr-xr-x 2 root root 4096 2011-02-24 17:18 20110224-171656 drwxr-xr-x 2 root root 4096 2011-02-28 16:54 20110228-165323 drwxr-xr-x 2 root root 4096 2011-03-01 17:01 20110301-170009 drwxr-xr-x 2 root root 4096 2011-03-01 17:13 20110301-171339 drwxr-xr-x 2 root root 4096 2011-03-01 17:16 20110301-171607 lrwxrwxrwx 1 root root 47 2011-03-01 17:16 latest -> /var/lib/puppi/archive/fep-pbit/ 20110301-171607 [...]
  • 39. class role_mpc-metaportale { $role="mpc-metaportale" [...] puppi::project::war { "configurator": source => "http://deploy.pgol.com/mpc-metaportale/configurator.war", user => "www-data", init_script => "tomcat-mpc", predeploy_customcommand => "rm -rf /store/tomcat/mpc/webapps/*", predeploy_user => "root", predeploy_priority => "39", deploy_root => "/store/tomcat/mpc/webapps", report_email => "release_engineering@seat.it,webdesign@paginegialle.it", enable => "true", disable_services => "monit puppet", } root@metaportali-mpc:~# puppi deploy configurator } Puppi setup: 00-configurator-RuntimeConfig-Initialization [ OK ] Deploy: 10-configurator-Run_PRE-Checks [ OK ] [...] Deploy: 20-configurator-Retrieve_WAR [ OK ] Deploy: 30-configurator-Backup_existing_WAR [ OK ] Deploy: 36-configurator-Disable_extra_services [ OK ] [...] Deploy: 37-configurator-Check_undeploy [ OK ] Deploy: 38-configurator-Service_stop [ OK ] [...] Deploy: 39-configurator-Run_Custom_PreDeploy_Script [ OK ] Deploy: 40-configurator-Deploy_WAR [ OK ] Deploy: 42-configurator-Service_start [ OK ] [...] Deploy: 43-configurator-Check_deploy [ OK ] Deploy: 44-configurator-Enable_extra_services [ OK ] [...] Deploy: 80-configurator-Run_POST-Checks [ OK ] [...] Reporting: 20-configurator-Mail_Notification [ OK ] REPORT FOR PUPPI - STATUS OK Summary of operations is: /var/log/puppi/configurator/20110303-145104/summary [...]
  • 40.
  • 41. Faster Setups Do ut des Tested code Quick Scalability Url based checks Deployment Agility Site Aware configurations Testing Environment Standardized deploy requests
  • 42. In medio stat virtus Share needs, constraints, knowledge and skills
  • 44. Full Infrastructure Automation Unified Infrastructure Reporting Per aspera ad astra Self Service Release Management AutoTesting Release Workflow Add here your wildest (IT) dream...
  • 45. ad maiora Graphics: www.tatlin.net