Configurazione di una macchina con Puppet Masterless
- Installare puppet
apt-get install wget lsb-release && \ wget -O /tmp/puppet6-release-$(lsb_release -c | cut -f 2).deb https://apt.puppetlabs.com/puppet6-release-$(lsb_release -c | cut -f 2).deb && \ sudo dpkg -i /tmp/puppet6-release-$(lsb_release -c | cut -f 2).deb && \ apt-get update && \ apt-get install puppet-agent
- Disabilitare il servizio:
systemctl disable puppet.service
- Aggiungere il PATH:
echo 'PATH="${PATH}":/opt/puppetlabs/bin' >> ~/.bash_profile
bash ~/.bash_profile
which puppet
/opt/puppetlabs/bin/puppet
- Creare un modulo di test:
cd /etc/puppetlabs/code/environments/production
mkdir -p ./modules/foo/files/
echo "hello world" > ./modules/foo/files/hello
mkdir -p ./modules/foo/manifests/
touch ./modules/foo/manifests/init.pp
mkdir -p ./manifests/
echo "include foo" > ./manifests/site.pp
cat > ./modules/foo/manifests/init.pp <<EOFile
class foo {
file { "/tmp/hello":
ensure => file,
source => "puppet:///modules/foo/hello",
}
}
EOFile
- Testare:
puppet apply --test --modulepath ./modules ./manifests/site.pp
- Verificare se il file è stato creato:
cat /tmp/hello
hello world
- Ora si possono creare i moduli necessari e dichiararli in site.pp
- L'applicazione viene fatta one shot con
puppet apply --test /etc/puppetlabs/code/environments/production/manifests/site.pp
- O per comodità:
alias papply='puppet apply --test /etc/puppetlabs/code/environments/production/manifests/site.pp $@'
papply