Création — Nicolas THOREZ 2022/11/18 18:14
Un orchestrateur est un système permettant d'automatiser une installation. puppet en est un. Une fois configuré, il pourra envoyer les différentes configurations à ces clients à distance, procéder à des installations de paquets, etc. De plus, les fichiers de configurations gérés par puppet sont protégés d'une modification non voulue. Ainsi, si un programme malveillant ou une erreur d'un utilisateur modifie un fichier de configuration alors le système remettra le fichier valide en place et redémarrera les services concernés au besoin.
root. N'oubliez pas les sauvegardes avant toute action.
wget wget https://apt.puppet.com/puppet7-release-bullseye.deb dpkg -i puppet7-release-bullseye.deb
apt update && apt install -y puppetserver
puppet, ou plutôt java qu'il utilise, est prévu par défaut pour utiliser 2Go de RAM. Dans le cas où votre machine n'aurait pas assez de mémoire disponible, vous pouvez baisser cette affectation à 1Go via la commande suivante (n'oubliez:
sed -i 's/-Xms2g -Xmx2g/-Xms1g -Xmx1g/g' /etc/default/puppetserver
systemctl enable pupperserver && systemctl start pupperserver
/etc/puppetlabs/puppet/puppet.conf. On va le modifier pour ajouter les informations suivantes :
[main] # Envoyer les logs de l'agent dans la console et dans le fichier de log logdest = console,/var/log/puppetlabs/puppet/puppet-agent.log # Adresse du serveur server = puppet.shyrkasys.local
ln -sf /opt/puppetlabs/bin/puppet /bin/puppet
puppet au travers du port 8140. Pensez à autoriser ce port sur votre pare-feu./etc/puppetlabs/code/environments/production/manifests/ :site.pp : contiendra les configurations à déployer sur l'ensemble des clients.node.pp : contiendra les classes à déployer sur chaque client de manière spécifique.
touch /etc/puppetlabs/code/environments/production/manifests/site.pp
echo 'node "default" {}' > /etc/puppetlabs/code/environments/production/manifests/node.pp
/etc/puppetlabs/code/environments/production/manifests/ :class : contiendra les fichiers de définitions des classes personnalisées.users : contiendra les fichiers de définitions des classes utilisateurs.
mkdir -p /etc/puppetlabs/code/environments/production/manifests/class/ mkdir -p /etc/puppetlabs/code/environments/production/manifests/users/
wget wget https://apt.puppet.com/puppet7-release-bullseye.deb dpkg -i puppet7-release-bullseye.deb
apt update && apt install -y puppet-agent
echo "[main]" >> /etc/puppetlabs/puppet/puppet.conf echo "server = puppet.shyrkasys.local" >> /etc/puppetlabs/puppet/puppet.conf
ln -sf /opt/puppetlabs/bin/puppet /bin/puppet
puppet agent -t
puppet :
Info: Creating a new RSA SSL key for test.shyrkasys.local
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for test.shyrkasys.local
Info: Certificate Request fingerprint (SHA256): 1B:84:A2:70:05:47:26:9F:D0:44:75:F4:97:C6:1C:D2:C0:7A:EC:BE:6A:26:97:3F:0F:1A:FF:08:49:D4:B4:96
Info: Certificate for cassandra.shyrkasys.lan has not been signed yet
Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate (test.shyrkasys.local).
Exiting now because the waitforcert setting is set to 0.
puppetserver ca list
Requested Certificates:
test.shyrkasys.local (SHA256) 1B:84:A2:70:05:47:26:9F:D0:44:75:F4:97:C6:1C:D2:C0:7A:EC:BE:6A:26:97:3F:0F:1A:FF:08:49:D4:B4:96
puppetserver ca sign --certname test.shyrkasys.local
puppet agent -t
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for test.shyrkasys.local
Info: Certificate Request fingerprint (SHA256): 1B:84:A2:70:05:47:26:9F:D0:44:75:F4:97:C6:1C:D2:C0:7A:EC:BE:6A:26:97:3F:0F:1A:FF:08:49:D4:B4:96
Info: Downloaded certificate for test.shyrkasys.local from https://puppet.shyrkasys.local:8140/puppet-ca/v1
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for test.shyrkasys.local
Info: Applying configuration version '1668800975'
Info: Creating state file /opt/puppetlabs/puppet/cache/state/state.yaml
Notice: Applied catalog in 0.10 seconds
/etc/puppetlabs/code/environments/production/manifests/class/test.pp dans laquelle on va ajouter le code suivant :class test {
notify { "Ceci est un test de déploiement": }
}
/etc/puppetlabs/code/environments/production/manifests/node.pp avec la ligne suivante :node "test.shyrkasys.local" { include test }
puppet agent -t
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for test.shyrkasys.local
Info: Applying configuration version '1668802924'
Notice: Ceci est un test de déploiement
Notice: /Stage[main]/Test/Notify[Ceci est un test de déploiement]/message: defined 'message' as 'Ceci est un test de déploiement'
Notice: Applied catalog in 0.58 seconds