Installer Puppet Agent

Puppet Agent doit être installé sur tout hôte que le master Puppet veut gérer.

Désinstaller Puppet Agent

sudo service puppet stop
sudo apt-get purge --auto-remove puppet-agent
sudo rm -rf /opt/puppetlabs
sudo rm -rf /etc/puppetlabs
rm -rf ~/.puppetlabs

Installer Puppet Agent

  1. Activer le repository Puppet Labs pour votre OS

     # Ubuntu 18.04
     curl -O https://apt.puppetlabs.com/puppet6-release-bionic.deb
     sudo dpkg -i puppet6-release-bionic.deb
     sudo apt-get update
     rm puppet6-release-bionic.deb
    
  2. Installer Puppet Agent

     sudo apt-get install puppet-agent
    
  3. Vérifier que Puppet Agent est installé

     sudo service puppet status
    
  4. Pour exécuter les commandes Puppet en ligne de commande, il faut soit ajouter leur emplacement au PATH ou les exécuter en entant leur chemin complet.

     export PATH=/opt/puppetlabs/puppet/bin/:$PATH
     echo !! >> ~/.bashrc
     puppet --version
    

Configurer l’agent Puppet

  1. Si vous n’utilisez pas DNS: mettre à jour /etc/hosts avec l’adresse IP (publique) du master Puppet.

     puppet_ip_address hostname.example.com
    
  2. Vérifier que vous y avez accès

     telnet hostname.example.com 8140
    

    Si la connexion réussit, un écran vide s’affiche, ce qui signifie que le port de l’ordinateur cible est ouvert. Une connexion échouée sera quant à elle accompagnée d’un message d’erreur — indiquant que le serveur indiqué n’écoute pas sur le port demandé.

  3. Initialiser Puppet.
    La commande suivante va échouer mais néanmoins initialiser les fichiers de configuration — qu’on va modifier par la suite.

     sudo -i puppet agent -t
    
  4. Mettre à jour la variable server

     sudo -i puppet config set server hostname.example.com
    
  5. Supprimer les certificats SSL actuels

     sudo rm -rf /etc/puppetlabs/puppet/ssl/certs/$(puppet config print certname).pem
     rm -rf $(puppet config print ssldir)/certs/$(puppet config print certname).pem
    
  6. Envoyer une CSR au master.
    La première fois qu’on exécute Puppet Agent, un certificat SSL est automatiquement généré et envoie une CSR au master.

     sudo -i puppet agent --test
    

    Exemple de résultat:

     Info: Downloaded certificate for ca from hostname.example.com
     Info: Downloaded certificate revocation list for ca from hostname.example.com
     Info: Creating a new SSL key for ubuntu-test
     Info: csr_attributes file loading from /etc/puppetlabs/etc/puppet/csr_attributes.yaml
     Info: Creating a new SSL certificate request for ubuntu-test
     Info: Certificate Request fingerprint (SHA256): C8:31:A2:9F:9F:63:B0:E7:71:96:AE:E3:54:D1:E6:6B:CB:E4:94:C1:80:43:32:29:C5:93:75:B9:7F:04:4D:F4
     Info: Certificate for ubuntu-test has not been signed yet
     Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate (ubuntu-test). Exiting now because the waitforcert setting is set to 0.
    

Signer le certificat de l’agent


Tester l’installation

  1. Retourner dans le terminal de l’agent et lancer Puppet Agent.
    Puisqu’aucun manifest n’a été configuré, cela ne devrait rien changer au système.

     sudo -i puppet agent -t
    

    Exemple de résultat:

     Info: csr_attributes file loading from /etc/puppetlabs/etc/puppet/csr_attributes.yaml
     Info: Creating a new SSL certificate request for ubuntu-test
     Info: Certificate Request fingerprint (SHA256): C8:31:A2:9F:9F:63:B0:E7:71:96:AE:E3:54:D1:E6:6B:CB:E4:94:C1:80:43:32:29:C5:93:75:B9:7F:04:4D:F4
     Info: Downloaded certificate for ubuntu-test from hostname.example.com
     Info: Using configured environment 'production'
     Info: Retrieving pluginfacts
     Notice: /File[/etc/puppetlabs/opt/puppet/cache/facts.d]/mode: mode changed '0775' to '0755'
     Info: Retrieving plugin
     Info: Retrieving locales
     Info: Caching catalog for ubuntu-test
     Info: Applying configuration version '1559234292'
     Info: Creating state file /etc/puppetlabs/opt/puppet/cache/state/state.yaml
     Notice: Applied catalog in 0.01 seconds
    
  2. Pour vérifier tous les certificats SSL que l’agent connait:

     sudo -i puppet ssl verify
    

Démarrer le service Puppet