Ricerca nel sito web

Come installare Puppet Server e Agent su AlmaLinux 9


Puppet è uno strumento centralizzato di gestione e automazione della configurazione. DevOps crea la gestione della configurazione per distribuire server e applicazioni e tutta la configurazione per l'automazione viene archiviata sul "Puppet Server" centrale. Successivamente i nodi "Agente" estrarranno una nuova configurazione dal "Server Puppet" e applicheranno lo stato come definito.

Tutte le connessioni tra i nodi "Puppet Server" e "Agent" sono crittografate per impostazione predefinita utilizzando il certificato SSL/TLS. Puppet utilizza Domain Specific Language (DSL) per descrivere la configurazione del sistema ed è simile alla sintassi di Ruby.

Questa guida mostra come installare Puppet Server e Agent sui server AlmaLinux. Ti mostreremo anche come iniziare con lo strumento di gestione della configurazione Puppet creando la prima distribuzione Puppet per LAMP Stack.

Prerequisiti

Assicurati di avere quanto segue prima di iniziare:

  • 2 server AlmaLinux - Questo esempio utilizza i server AlmaLinux 8:
    • nome host: pp-server - Indirizzo IP: 192.168.10.20 - Utilizzato come: Puppet Server
    • nome host: agent1 - Indirizzo IP: 192.168.10.21 - Utilizzato come: Puppet Agent
  • Un utente non root può eseguire sudo per ottenere i privilegi di root.

Imposta il file /etc/hosts

Prima di passare all'installazione di Puppet, è consigliabile utilizzare un nome di dominio locale o FQDN (Fully Qualified Domain Name) invece di un indirizzo IP per l'ambiente Puppet.

In questo esempio, utilizzerai il sistema fqdn sia per Puppet Server che per Agent. Ogni server è raggiungibile tramite fqdn e nome host di sistema.

Per iniziare, esegui il comando seguente per configurare fqdn su ciascun server.

Eseguilo sul Puppet Server.

sudo hostnamectl set-hostname pp-server.hwdomain.lan

E questo è sulla macchina dell'agente.

sudo hostnamectl set-hostname agent1.hwdomain.lan

Apri il file /etc/hosts utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/hosts

Inserisci la seguente configurazione e assicurati di modificare l'indirizzo IP dettagliato e l'fqdn.

192.168.10.20   pp-server.hwdomain.lan   pp-server
192.168.10.21   agent1.hwdomain.lan    agent1

Salva e chiudi il file.

Successivamente, esegui il comando seguente per verificare fqdn sia sul Puppet Server che sull'agente.

sudo hostname -f

Dovresti ottenere il fqdn sul Puppet Server come pp-server.hwdomain.lan e per la macchina dell'agente agent1.hwdomain.lan.

Infine, esegui il comando ping riportato di seguito per assicurarti che ciascun nome host e fqdn puntino all'indirizzo IP interno corretto del server.

ping -c3 pp-server.hwdomain.lan
ping -c3 pp-server
ping -c3 agent1.hwdomain.lan
ping -c3 agent1

Configura il nome host e il fqdn sul Puppet Server.

Imposta nome host e fqdn su Puppet Agent.

Installazione di Puppet

In questa sezione inizierai l'installazione del Puppet Server e dell'agente. Configurerai il repository Puppet sia sul server Puppet che sull'agente, quindi installerai il rispettivo pacchetto Puppet su ciascuna macchina.

Aggiunta del repository dei pupazzi

Assicurati di eseguire questo comando sia sul Puppet Server che sull'Agente.

Aggiungi il repository Puppet sia al server Puppet che all'agente utilizzando il seguente comando.

sudo rpm -Uvh https://yum.puppet.com/puppet7-release-el-8.noarch.rpm

Una volta aggiunto il repository, esegui il comando dnf riportato di seguito per verificare l'elenco dei repository disponibili su entrambi i server.

sudo dnf repolist

Dovresti vedere il repository Puppet nell'elenco dei repository.

Installazione e configurazione di Puppet Server

Una volta aggiunto il repository, puoi avviare l'installazione di Puppet Server.

Innanzitutto, esegui il comando dnf di seguito per installare il pacchetto puppetserver sul pp-server.

sudo dnf install puppetserver

Immettere y quando richiesto e premere INVIO per procedere.

Inoltre, inserisci y quando aggiungere la chiave GPG del repository Puppet.

Al termine dell'installazione, esegui il comando seguente per caricare il profilo di sistema Puppet sul tuo sistema. Quindi, verifica la variabile di ambiente PATH per assicurarti che la directory bin del Puppet Server venga aggiunta.

source /etc/profile.d/puppet-agent.sh
echo $PATH

In caso di successo, dovresti vedere che la directory /opt/puppetlabs/bin è disponibile sul PATH del sistema.

Successivamente, esegui il comando seguente per individuare il file binario puppetserver e verificare la versione puppsetserver.

which puppetserver
puppetserver -v

In questo output, dovresti vedere che il file binario pupazzoserver è disponibile in /opt/puppetlabs/bin/puppetserver. E l'attuale burattino server installato è v7.11.

Installazione dell'agente Puppet

Sei pronto per installare Puppet Agent sulla macchina agent1.hwdomain.lan.

Sul computer dell'agente, esegui il comando seguente per installare il pacchetto pupazzo-agent. Immettere y quando richiesto e premere INVIO.

sudo dnf install puppet-agent

Inoltre, inserisci nuovamente y per aggiungere la chiave GPG del repository Puppet.

Dopo aver installato l'agente pupazzo, esegui il comando seguente per caricare il profilo di sistema Puppet nella sessione corrente. Quindi, controlla la variabile di ambiente PATH del sistema.

source /etc/profile.d/puppet-agent.sh
echo $PATH

Se il profilo di sistema Puppet è caricato, dovresti vedere la directory /opt/puppetlabs/bin disponibile sul PATH del sistema.

Esegui il comando seguente per individuare il file binario del pupazzo e verificare la versione dell'agente pupazzo.

which puppet
puppet -v

Dovresti vedere che il file binario del pupazzo si trova in /opt/puppetlabs/bin/puppet e la versione del burattino-agent è v7.11.

Infine, esegui il comando systemctl riportato di seguito per avviare e abilitare il servizio pupazzo sulla macchina dell'agente.

sudo systemctl start puppet
sudo systemctl enable puppet

Quindi, esegui il comando seguente per assicurarti che il servizio pupazzo venga eseguito.

sudo systemctl status puppet

Se tutto va bene, dovresti vedere l'output in questo modo:

Configurazione del server Puppet

Con Puppet Server e Agent installati, il passaggio successivo configurerà l'installazione di Puppet Server. Imposterai il nome del server predefinito per Puppet Server, imposterai l'intervallo di esecuzione per gli agenti, quindi avvierai e abiliterai il servizio Puppe Server.

Innanzitutto, apri il file /etc/sysconfig/puppetserver utilizzando l'editor vim.

sudo nano /etc/sysconfig/puppetserver

Nel parametro JAVA_ARGS, aumentare l'allocazione massima di memoria per Puppet Server. Questa configurazione dipende dalla memoria del sistema attuale. In questo esempio, il Puppet Server ha 4 GB di memoria e allocherà 2 GB per Puppet Server.

# Modify this if you'd like to change the memory allocation, enable JMX, etc
JAVA_ARGS="-Xms2g -Xmx2g"

Salvare il file e uscire dall'editor al termine.

Ora esegui il comando pupazzo riportato di seguito per modificare il nome del server predefinito in pp-server.hwdomain.lan e l'intervallo di esecuzione in 1 ora. Il parametro runinterval indica la frequenza con cui l'Agente applica i cataloghi Puppet.

puppet config set server pp-server.hwdomain.lan --section main
puppet config set runinterval 1h --section main

Successivamente, esegui il comando seguente per impostare l'ambiente predefinito sulla produzione e nomi alternativi per il Puppet Server su pp-server e pp-server.hwdomain.lan.

puppet config set environment production --section server
puppet config set dns_alt_names pp-server,pp-server.hwdomain.lan --section server

Una volta eseguiti i comandi del pupazzo, le impostazioni verranno archiviate nella configurazione predefinita di Puppet /etc/puppetlabs/puppet/puppet.conf. Esegui il comando seguente per mostrare il contenuto del file /etc/puppetlabs/puppet/puppet.conf.

cat /etc/puppetlabs/puppet/puppet.conf

Dovresti ottenere una configurazione simile a questa:

Ora esegui il seguente comando per ricaricare il systemd manager.

sudo systemctl daemon-reload

Quindi avvia e abilita il servizio pupazzoserver utilizzando il seguente comando systemctl.

sudo systemctl start puppetserver
sudo systemctl enable puppetserver

Una volta avviato il burattinaio, esegui il comando seguente per verificarlo.

sudo systemctl status puppetserver

Se pupazzoserver è in esecuzione, dovresti ottenere un output come questo:

Configurazione di Firewalld su Puppet Server

Dopo aver configurato Puppet Server, devi aprire la porta 8140 sul Puppet Server e consentire alla tua rete di accedervi. Passeremo ora a configurare il firewall e ad aprire la porta 8140 su pp-server.hwdomain.lan.

Esegui il comando seguente per aggiungere la tua rete locale al firewall e aprire la porta TCP 8140 che utilizzerà Puppet Server.

sudo firewall-cmd --add-source=192.168.10.0/24 --permanent
sudo firewall-cmd --add-port=8140/tcp --permanent

Quindi, ricarica il firewalld e verifica l'elenco delle regole abilitate utilizzando il seguente comando.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Dovresti vedere la rete 192.168.10.0/24 aggiunta a firewalld e la porta 8140 disponibile su firewalld.

Registrazione dell'agente Puppet sul server Puppet

Questa sezione riguarda l'aggiunta e la registrazione di Puppet Agent sul Puppet Server. Registrerai agent.hwdomain.lan su Puppet Server pp-server.hwdomain.lan.

Per fare ciò, segui questi passaggi:

  • Definire il Puppet Server predefinito sul lato agente e riavviare Puppet Agent.
  • Inizializza la richiesta di firma del certificato da Puppet Agent.
  • Firma della richiesta di certificato sul server Puppet.
  • Verificare l'elenco dei certificati firmati.

Definire il Puppet Server predefinito a cui l'agente può connettersi e il ca_server che verrà utilizzato per la verifica dell'agente. In questo esempio, il Puppet Server è in esecuzione all'interno del fqdn pp-server.hwdomain.lan.

puppet config set server pp-server.hwdomain.lan --section agent
puppet config set ca_server pp-server.hwdomain.lan --section agent

Esegui il comando seguente per verificare la configurazione dell'agente Puppet /etc/puppetlabs/puppet/puppet.conf. Assicurarsi di disporre della configurazione server e ca_server corretta.

cat /etc/puppetlabs/puppet/puppet.conf

Dovresti ricevere un output simile:

Ora esegui il comando seguente per riavviare il servizio pupazzo sulla macchina dell'agente e verificarne lo stato.

sudo systemctl restart puppet
sudo systemctl status puppet

Se hai una configurazione corretta del Puppet Agent, dovresti vedere il server Puppet con lo stato in esecuzione.

Successivamente, esegui il comando seguente per inizializzare la macchina Puppet Agent.

puppet ssl bootstrap

Ciò genererà un nuovo certificato sulla macchina dell'agente e effettuerà l'autenticazione sul server Puppet.

Passare al Puppet Server ed eseguire il comando seguente per verificare l'elenco dei certificati (sia in sospeso che accettati). quindi, accetta e firma la richiesta di certificato dalla macchina dell'agente agent1.hwdomain.lan.

puppetserver ca list --all
puppetserver ca sign --certname agent1.hwdomain.lan

Dopo che Puppet Server ha firmato il certificato, dovresti visualizzare il messaggio "Richiesta di certificato firmato con successo per agent1.hwdomain.lan".

Quindi, sul computer Puppet Agent, dovresti visualizzare il messaggio "Avviso: inizializzazione SSL completata".

Infine, ricontrolla l'elenco dei certificati firmati sul Puppet Server utilizzando il seguente comando.

puppetserver ca list --all

Se tutto è andato a buon fine, dovresti vedere il certificato della macchina agent1.hwdomain.lan nella sezione Certificati firmati.

Ora hai installato e configurato con successo Puppet Server e Agent su due diversi server AlmaLinux. Nel passaggio successivo creerai il primo manifest Puppet per la distribuzione automatica della tua applicazione.

Creazione del primo manifesto delle marionette

Questa sezione è dedicata come punto di partenza per utilizzare la gestione della configurazione di Puppet cas per automatizzare la distribuzione delle tue applicazioni. Creerai il tuo primo manifest Puppet per l'installazione di LAMP Stack sul Puppet Agent agent1.hwdomain.lan.

Assicurati di eseguire il comando seguente e di creare manifesti Puppet sul server Puppet.

Vai alla directory /etc/puppetlabs/code/environments/production/ e crea una nuova directory dei moduli per il tuo progetto module/lamp/.

cd /etc/puppetlabs/code/environments/production/
mkdir -p modules/lamp/{manifests,files}

Passa alla directory modules/lamp/ e crea un nuovo file manifests/init.pp utilizzando l'editor nano.

cd modules/lamp/
nano manifests/init.pp

Inserisci il seguente script Puppet nel file. Ciò installerà i pacchetti LAMP Stack sul computer dell'agente, assicurerà che i servizi dello stack LAMP siano in esecuzione e abilitati, creerà il file index.html personalizzato in /var/www/html/index.html e crea un nuovo file PHPINFO /var/www/html/info.php.

class lamp {
    Package { ensure => 'installed' }
    $lamppackages = [ 'httpd', 'mariadb-server', 'php' ]
    package { $lamppackages: }
    Service { ensure => 'running', enable => 'true'}
    $lampsvc = [ 'httpd', 'mariadb' ]
    service { $lampsvc: }
    file { '/var/www/html/index.html':
     ensure  => file,
     content => "<h1><center>Welcome to httpd - Managed by Puppet</center></h1>",
     mode    => '0644',
    }
    file { '/var/www/html/info.php':
     ensure  => file,
     content => "<?php phpinfo(); ?>",
     mode    => '0644',
    }
}

Salva e chiudi il file una volta terminato.

Successivamente, spostati nuovamente nella directory /etc/puppetlabs/code/environments/production/ e crea un altro file manifests/sites.pp utilizzando l'editor nano.

cd /etc/puppetlabs/code/environments/production/
nano manifests/sites.pp

Definisci il Puppet Agent e il modulo che desideri utilizzare. In questo esempio, distribuirai il modulo lamp sulla macchina dell'agente agent1.hwdomain.lan.

node 'agent1.hwdomain.lan' {
    include lamp
}

Salvare il file ed uscire dall'editor.

Applicazione dei manifesti pupazzo all'agente

Sulla macchina dell'agente, esegui il comando seguente per estrarre e applicare la distribuzione.

puppet agent -t

L'agente Puppet dovrebbe ora recuperare la distribuzione del catalogo dal server Puppet, memorizzarlo nella cache del computer dell'agente, quindi applicare la distribuzione.

Una volta terminato tutto, esegui il comando systemctl di seguito per verificare sia i servizi httpd che MariaDB.

Controlla il servizio httpd per assicurarti che sia in esecuzione e abilitato.

sudo systemctl is-enabled httpd
sudo systemctl status httpd

Controlla il servizio MariaDB per assicurarti che sia in esecuzione e abilitato.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Avvia il tuo browser web e visita l'indirizzo IP di Puppet Agent (ad esempio: http://192.168.10.21/). Se la distribuzione ha esito positivo, dovresti ottenere la pagina index.html personalizzata come questa:

Ora vai al percorso URL /info.php (es: http://192.168.10.21/info.php). Se PHP è installato, dovresti ottenere la pagina dettagliata di PHPINFO come questa:

Conclusione

Congratulazioni, hai completato con successo l'installazione di Puppet Server e Agent sui tuoi server AlmaLinux. Hai anche creato il tuo primo manifest Puppet per la distribuzione dello stack LAMP, che è buono come punto di partenza. Ora puoi creare il tuo manifest Puppet per distribuire le tue applicazioni.

Articoli correlati: