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