Puppet è un motore amministrativo automatizzato gratuito e open source per i sistemi operativi Linux, Unix e Windows. Viene utilizzato per la distribuzione, la configurazione e la gestione dei server ed esegue attività amministrative come l'aggiunta di utenti, l'installazione di pacchetti e molto altro. Aiuta gli amministratori di sistema a liberare tempo e spazio mentale automatizzando le attività su migliaia di macchine fisiche e virtuali. Utilizza un modello client-server. Dove il Puppet Master controlla le informazioni di configurazione per gli agenti Puppet mentre gli agenti Puppet parlano e richiamano i profili di configurazione dal Puppet master.
In questo tutorial spiegheremo come installare un server e un agente Puppet sul server Ubuntu 20.04.
Prerequisiti
- Due server con Ubuntu 20.04.
- Su entrambi i server è configurata una password di root.
Per iniziare
Innanzitutto, dovrai aggiornare tutti i pacchetti sui sistemi Puppet master e client Puppet. Puoi aggiornarli eseguendo il seguente comando:
apt-get update -y
Una volta che tutti i pacchetti sono aggiornati, puoi procedere al passaggio successivo.
Imposta risoluzione nome host
Successivamente, dovrai impostare il nome host su entrambi i nodi. Quindi ogni nodo può comunicare tra loro tramite il nome host. Puoi farlo modificando il file /etc/hosts su entrambi i nodi:
nano /etc/hosts
Aggiungi le seguenti righe su entrambi i nodi:
puppet-master-ip puppetmaster puppet puppet-client-ip puppetclient
Salva e chiudi il file quando hai finito. Quindi, puoi procedere al passaggio successivo.
Installa il server dei pupazzi
Innanzitutto, dovrai installare il server Puppet sul nodo principale. Per impostazione predefinita, il pacchetto Puppet non è disponibile nel repository predefinito di Ubuntu 20.04. Quindi dovrai installare il repository Puppet nel tuo server.
Innanzitutto, scarica l'ultima versione di Puppet con il seguente comando:
wget https://apt.puppetlabs.com/puppet6-release-focal.deb
Una volta scaricato il pacchetto, installalo eseguendo il seguente comando:
dpkg -i puppet6-release-focal.deb
Una volta completata l'installazione, aggiorna il repository e installa il server Puppet eseguendo il comando seguente:
apt-get update -y
apt-get install puppetserver -y
Dopo aver installato il server Puppet, sarà necessario modificare la dimensione dell'allocazione della memoria di processo di Puppet Java. Puoi farlo modificando il file /etc/default/puppetserver:
nano /etc/default/puppetserver
Cambia la dimensione della memoria a 1 g come mostrato di seguito:
JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio Puppet e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start puppetserver
systemctl enable puppetserver
Successivamente, puoi verificare lo stato del servizio Puppet con il seguente comando:
systemctl status puppetserver
Dovresti vedere il seguente comando:
? puppetserver.service - puppetserver Service Loaded: loaded (/lib/systemd/system/puppetserver.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 09:33:55 UTC; 3s ago Process: 3673 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS) Main PID: 3715 (java) Tasks: 42 (limit: 4915) Memory: 962.3M CGroup: /system.slice/puppetserver.service ??3715 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill> Sep 05 09:33:08 puppetmaster systemd[1]: Starting puppetserver Service... Sep 05 09:33:55 puppetmaster systemd[1]: Started puppetserver Service.
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura Puppet Agent
A questo punto, il server Puppet è installato e configurato. Ora dovrai installare l'agente Puppet sul nodo client.
Innanzitutto, scarica e installa il repository Puppet con il seguente comando:
wget https://apt.puppetlabs.com/puppet6-release-focal.deb
dpkg -i puppet6-release-focal.deb
Quindi, aggiorna il repository e installa l'agente Puppet eseguendo il comando seguente:
apt-get update -y
apt-get install puppet-agent -y
Dopo aver installato l'agente Puppet, dovrai modificare il file di configurazione di Puppet e definire le informazioni sul master Puppet:
nano /etc/puppetlabs/puppet/puppet.conf
Aggiungi le seguenti righe:
[main] certname = puppetclient server = puppetmaster
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio dell'agente Puppet e abilitalo all'avvio all'avvio con il comando seguente:
systemctl start puppet
systemctl enable puppet
Successivamente, verifica lo stato del pupazzo con il seguente comando:
systemctl status puppet
Dovresti ottenere il seguente output:
? puppet.service - Puppet agent Loaded: loaded (/lib/systemd/system/puppet.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-09-05 09:43:15 UTC; 22s ago Main PID: 1435 (puppet) Tasks: 2 (limit: 2353) Memory: 52.8M CGroup: /system.slice/puppet.service ??1435 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize Sep 05 09:43:15 puppetagent systemd[1]: Started Puppet agent.
A questo punto, l'agente Puppet è installato e configurato. Ora puoi procedere al passaggio successivo.
Firma certificato agente burattinaio
Puppet utilizza un'architettura client-server, quindi dovrai approvare una richiesta di certificato per ogni nodo agente prima che possa configurarlo.
Nel nodo Puppet master, esegui il comando seguente per elencare tutti i certificati:
/opt/puppetlabs/bin/puppetserver ca list
Dovresti vedere il seguente output:
Requested Certificates: puppetclient (SHA256) A4:9A:E9:87:8B:54:0A:4F:A0:78:65:1A:3C:99:B5:EC:31:9E:BB:4C:17:8A:50:16:E9:1E:3D:D6:27:74:89:85 puppetmaster (SHA256) E9:25:4C:51:4E:47:D7:44:11:1F:C5:A9:4E:96:D9:E8:3A:EB:A0:01:48:06:B5:EF:3F:C4:09:03:90:3E:D8:2D
Ora, firma tutto il certificato con il seguente comando:
/opt/puppetlabs/bin/puppetserver ca sign --all
Dovresti ottenere il seguente output:
Successfully signed certificate request for puppetclient Successfully signed certificate request for puppetmaster
Ora, il burattinaio può comunicare e controllare il nodo dell'agente.
Nel nodo dell'agente Puppet, testare la comunicazione tra il master Puppet e l'agente con il comando seguente:
/opt/puppetlabs/bin/puppet agent --test
Se tutto va bene, dovresti ottenere il seguente output:
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for puppetclient Info: Applying configuration version '1599300398' Notice: Applied catalog in 0.02 seconds
Conclusione
Congratulazioni! hai installato e configurato correttamente Puppet master e agent sul server Ubuntu 20.04. Ora puoi aggiungere facilmente più agenti e gestirli facilmente con Puppet.