SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Plus de Alessandro Franceschi

Plus 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
 

Dernier

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Dernier (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

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