Note: 's/myorg//g' in text below.
$ mkdir ~/workspace && cd workspace
$ git pull git@git.myorg.com:myorg/puppet-control.git
$ cd puppet-control
$ git fetch --all && git checkout staging && git pull origin staging
$ git checkout -b redis_modules
Via the GitLab web interface.
$ cd ~workspace/puppet-control
$ vi Puppetfile
...
If suitable Puppet Forge module:
mod '<namespace>/redis', '<some version>'
else:
mod 'redis',
:git => 'git@git.myorg.com:myorg/puppet-redis',
:ref => 'master'
$ git add -A && git commit -m 'add redis module to the Puppetfile' && git push origin redis_module
Use of Vagrant and VMs or Docker containers highly advisable.
$ cd ~/workspace/puppet-redis
$ git push origin redis_module
$ ssh <puppetmaster>
puppetmaster$ sudo /opt/puppet/bin/r10k deploy environment redis_module -p --verbose
$ ssh <puppetagent>
puppetagent$ sudo puppet agent -t --noop --environment=redis_module
Inspect report of noop results.
puppetagent$ sudo puppet agent -t --environment=redis_module
Inspect convergence results.
Via the GitLab interface.
Verify and accept Merge Request via GitLab interface.
$ ssh <puppetmaster>
puppetmaster$ sudo /opt/puppet/bin/r10k deploy environment staging -p --verbose
$ ssh <puppetagent>
puppetagent$ sudo puppet agent -t --noop --environment=staging
puppetagent$ sudo puppet agent -t --environment=staging
Via GitLab interface.
Verify and accept Merge Request via GitLab interface.
$ ssh <puppetmaster>
puppetmaster$ sudo /opt/puppet/bin/r10k deploy environment production -p --verbose
$ ssh <production puppet agent>
productionpuppetagent$ puppet agent -t --noop --environment=production
productionpuppetagent$ puppet agent -t --environment=production