Gestione ambienti di test e produzione con git in puppet

From RVM Wiki
Revision as of 14:46, 25 June 2013 by Gabriele.vivinetto (talk | contribs) (Created page with "* Sul server definire gli ambienti da utilizzare sudoedit /etc/puppet/puppet.conf <pre> [main] modulepath = $confdir/modules manifest = $confdir/m…")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  • Sul server definire gli ambienti da utilizzare
sudoedit /etc/puppet/puppet.conf 
[main]
        modulepath      = $confdir/modules
        manifest        = $confdir/manifests/site.pp
        templatedir     = $confdir/templates
        logdir          = /var/log/puppet
        vardir          = /var/lib/puppet
        ssldir          = /var/lib/puppet/ssl
        rundir          = /var/run/puppet
        factpath        = $vardir/lib/facter


[development]
        modulepath      = $confdir/environments/development/modules
        manifest        = $confdir/environments/development/manifests/site.pp

[testing]
        modulepath      = $confdir/environments/testing/modules
        manifest        = $confdir/environments/testing/manifests/site.pp
  • Riavviare puppetmaster per rendere disponbili gli ambienti:
sudo invoke-rc.d puppetmaster restart
  • Quello che si vuole gestire sono i moduli.
  • Inizializzare il repository git di produzione:
cd /etc/puppet/modules
sudo git init
sudo git add .
sudo git commit -a -m "Initial commit of main environment"
  • Creiamo le directory per gli ambienti, dove clonare poi il repository main:
cd /etc/puppet
sudo mkdir -p environments/{development,testing}
  • Ora cloniamo il main in development. questo crea una copia del repostiroy di produzione nell'ambiente development. Questo clone è collegato al repository originale "origin"
cd /etc/puppet/environments/development
sudo git clone ../../modules
  • Definiamo il riferimento all'environment main come "production":
cd /etc/puppet/environments/development/modules
sudo git remote add production /etc/puppet/modules
  • Verificare che sia listato:
git remote -v
origin  /etc/puppet/environments/development/../../modules (fetch)
origin  /etc/puppet/environments/development/../../modules (push)
production      /etc/puppet/modules (fetch)
production      /etc/puppet/modules (push)
  • Cloniamo anche nel testing, ed associamo sia con la produzione che con il development:
cd /etc/puppet/environments/testing
sudo git clone ../../modules
cd modules
sudo git remote add production /etc/puppet/modules
sudo git remote add development /etc/puppet/environments/development/modules
  • Verificare
sudo git remote -v
origin  /etc/puppet/environments/testing/../../modules (fetch)
origin  /etc/puppet/environments/testing/../../modules (push)
development     /etc/puppet/environments/development/modules (fetch)
development     /etc/puppet/environments/development/modules (push)
production      /etc/puppet/modules (fetch)
production      /etc/puppet/modules (push)
  • Il percorso di sviluppo che si seguirà sarà
development => testing => production