GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Puppet Server e Agent su Debian 11

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 è archiviata nel "server pupazzo" centrale. Dopodiché, i nodi "Agente" estrarranno una nuova configurazione dal "Server dei pupazzi" e applicheranno lo stato come definito.

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

In questa guida, installerai e configurerai il server e l'agente Puppet su Debian 11 Bullseye. Installerai il server Puppet sul server hostname 'puppet-server' e l'agente Puppet sul server con l'hostname 'agent'. Alla fine, creerai i primi manifest del pupazzo per l'installazione dello stack LEMP di base sul nodo "agente".

Prerequisito

  • Avrai bisogno di due diversi server Debian 11.
    • Il 'server dei pupazzi ' con indirizzo IP '192.168.5.100 ' e il fqdn 'puppet-server.localdomainl.lan '.
    • L'agente ' nodo con l'indirizzo IP '192.168.5.150 ' e il fqdn 'agent.localdomain.lan '.
  • Inoltre, avrai bisogno dell'utente root o dell'utente con i privilegi root/sudo.

Impostazione FQDN

Innanzitutto, imposterai il nome di dominio completo (FQDN) e il file '/etc/hosts' sia su 'puppet-server' che su 'agent'. Ciò garantirà che entrambi i server possano comunicare con il nome di dominio locale.

Per impostare FQDN, esegui 'hostnamectl ' comando qui sotto.

Esegui il comando seguente per impostare fqdn 'puppet-server.localdomain.lan ' nel 'server dei pupazzi '.

hostnamectl set-hostname puppet-server.localdomain.lan

Esegui il comando seguente per impostare fqdn 'agent.localdomain.lan ' su 'agente 'nodo.

hostnamectl set-hostname agent.localdomain.lan

Quindi, modifica '/etc/hosts ' utilizzando l'editor vim come di seguito.

sudo vim /etc/hosts

Copia e incolla la seguente configurazione.

192.168.5.100   puppet-server.localdomain.lan
192.168.5.150   agent.localdomain.lan

Salva il file ed esci.

Infine, esegui il 'ping ' comando di seguito per verificare la connessione tra il 'server-puppet ' e 'agente '.

ping puppet-server.localdomain.lan -c3
ping agent.localdomain.lan -c3

Se la tua configurazione è corretta, vedrai il seguente output. Il 'puppet-server.localdomain.lan ' viene risolto sul server '192.168.5.100 ' e 'agent.localdomain.lan ' viene risolto nel nodo agente '192.168.5.150 '.

Aggiunta del repository dei pupazzi

Per impostazione predefinita, Puppelabs fornisce pacchetti di repository per diverse distribuzioni Linux, incluso l'ultimo Debian 11 Bullseye. In questo passaggio, aggiungerai e installerai il repository Puppet sia su 'puppet-server' che su 'agent'. Al momento della stesura di questo articolo, l'ultima versione di Puppet è la v7.x.

Scarica il pacchetto del repository usando 'wget ' comando qui sotto.

wget https://apt.puppet.com/puppet7-release-bullseye.deb

Quindi, installa il file deb 'puppet7-release-bullseye.deb ' utilizzando 'dpkg ' comando qui sotto.

sudo dpkg -i puppet7-release-bullseye.deb

Al termine dell'installazione, esegui 'apt ' comando seguente per aggiornare e aggiornare l'indice del pacchetto Debian.

sudo apt update

Ora sei pronto per installare i pacchetti Puppet.

Installazione di Puppet Server

In questo passaggio, installerai il pacchetto del server Puppet sul "server-puppet". Al momento della stesura di questo articolo, l'ultima versione di Puppet è la v7.

Per installare Puppet Server, esegui il comando apt di seguito. Questo comando ha anche installato automaticamente altri pacchetti come Java OpenJDK.

sudo apt install puppetserver

Digita 'Y ' per confermare l'installazione.

Al termine dell'installazione, dovrai caricare l'ambiente bash per il server dei pupazzi.

Per impostazione predefinita, Puppet memorizza il suo file binario su '/opt/puppetlabs/bin ' directory. Esegui il comando seguente per applicare il nuovo '$PATH ' variabile di ambiente per Puppet Server.

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

Facoltativamente, puoi anche applicare il '$PATH ' variabile d'ambiente eseguendo il comando seguente.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Ora verifica il '$PATH ' variabile d'ambiente usando il comando seguente. Assicurati che la directory '/opt/puppetlabs/bin ' è nell'elenco di '$PATH ' variabile d'ambiente.

echo $PATH

Dopodiché, puoi eseguire il 'puppetserver ' comando normalmente. Di seguito puoi controllare la versione Puppet.

puppetserver -v

Dovresti ottenere un output simile allo screenshot qui sotto.

Quindi, modifica la configurazione del server dei pupazzi '/etc/default/puppetserver' usando l'editor vim.

sudo vim /etc/default/puppetserver

Modificare l'allocazione di memoria massima per il server dei pupazzi. Dipende dalla memoria del tuo sistema. In questa guida, abbiamo 2 GB di memoria e allocheremo 1 GB per il server Puppet. E useremo la configurazione seguente.

JAVA_ARGS="-Xms1g -Xmx1g"

Salva il file di configurazione ed esci.

Quindi, ricarica il gestore systemd per applicare il nuovo file del servizio Puppet.

sudo systemctl daemon-reload

Quindi avvia e abilita il 'puppetserver ' servizio utilizzando il comando seguente.

sudo systemctl start enable --now puppetserver

Il servizio 'server dei burattini ' dovrebbe essere attivo e funzionante. Esegui il comando seguente per verificare il 'puppetserver '.

sudo systemctl status puppetserver

Dovresti vedere l'output simile allo screenshot qui sotto.

Inoltre, se stai utilizzando un firewall UFW sul tuo sistema, assicurati di aprire la porta '8140 ' che verrà utilizzato dal Puppet Server.

Esegui il comando seguente per alleare tutte le connessioni in entrata dalla sottorete locale '192.168.5.0/24 ' al Puppet Server sulla porta '8140 '.

sudo ufw allow from 192.168.5.0/24 to any proto tcp port 8140
sudo ufw status

Di seguito sono riportate le attuali regole del firewall UFW che dovresti vedere.

Configurazione del server dei pupazzi

In questo passaggio, modificherai la configurazione del server dei pupazzi. E questo può essere fatto modificando direttamente la configurazione del pupazzo o generando la configurazione utilizzando il 'puppet ' riga di comando.

Esegui i comandi "puppet" di seguito per configurare il server dei pupazzi. Questo imposterà il nome di dominio del server dei pupazzi predefinito e l'intervallo di esecuzione nella 'principale ' e l'ambiente e dns_alt_names nella sezione 'server '.

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

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

Ora controlla la configurazione del Puppet Server '/etc/puppetlabs/puppet/puppet.conf ' usando il 'gatto ' comando qui sotto.

cat /etc/puppetlabs/puppet/puppet.conf

Dovresti vedere la configurazione del server dei pupazzi come di seguito.

Infine, riavvia il servizio 'puppetserver ' per applicare una nuova configurazione eseguendo 'systemctl ' comando qui sotto.

sudo systemctl restart puppetserver

A questo punto, hai completato l'installazione e la configurazione di Puppet Server.

Installazione e configurazione di Puppet Agent

In questo passaggio, installerai e configurerai Puppet Agent sul computer client 'agente '.

Prima di installare Puppet Agent, assicurati di aver completato la configurazione FQDN e di aver aggiunto il repository Puppet.

Ora installiamo e configuriamo Puppet Agent.

Installa il pacchetto 'puppet-agent ' usando il comando apt qui sotto.

sudo apt install puppet-agent

Al termine dell'installazione, esegui il comando seguente per avviare e abilitare il servizio Puppet.

sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Dovresti vedere l'output simile allo screenshot qui sotto.

Successivamente, configurerai il '$PATH ' variabile di ambiente per aggiungere il percorso binario del pupazzo '/opt/puppetlabs/bin/ '. In questo modo, puoi eseguire il 'puppet ' direttamente senza il percorso completo del file binario.

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

Un altro modo per farlo è aggiungere un nuovo '$PATH ' variabile d'ambiente alla '~/.bashrc ' configurazione utilizzando il comando seguente.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Ora verifica il '$PATH ' configurazione della variabile d'ambiente utilizzando il comando seguente.

echo $PATH

Dovresti vedere il percorso binario del pupazzo '/opt/puppetlabs/bin ' viene aggiunto a '$PATH ' variabile d'ambiente.

Registrazione dell'agente dei pupazzi sul server dei pupazzi

Dopo aver installato Puppet Agent, ora configurerai Puppet Agent per registrarlo sul server principale dei pupazzi.

Innanzitutto, assicurati che l'fqdn del server dei pupazzi sia raggiungibile dall'"agente ' macchina. Provalo usando il 'ping ' comando qui sotto.

ping puppet-server.localdomain.lan -c3

Quindi, esegui i comandi seguenti per configurare Puppet Agent. Questo definirà il nome di dominio del server dei pupazzi e ca_server nell'agente sezione '.

puppet config set server puppet-server.localdomain.lan --section agent
puppet config set ca_server puppet-server.localdomain.lan --section agent

Verifica la configurazione del pupazzo generata nel file '/etc/puppetlabs/puppet/puppet.conf'.

cat /etc/puppetlabs/puppet/puppet.conf

Dovresti vedere l'output simile allo screenshot qui sotto.

Ora, esegui il comando seguente per riavviare il servizio Puppet e applicare le nuove modifiche. Quindi verifica il servizio Puppet e assicurati che sia attivo e in esecuzione.

sudo systemctl restart puppet
sudo systemctl status puppet

Di seguito è riportato l'output dello stato del servizio Puppet.

Quindi, esegui il comando seguente per registrare l'agente Puppet sul server Puppet. Questo comando genererà nuovi certificati TLS e creerà nuove richieste di firma del certificato al server Puppet.

puppet ssl bootstrap

Passare ora al terminale Puppet Server ed eseguire il comando seguente per verificare le richieste di firma del certificato, quindi verificare la firma del certificato per l'agente Puppet 'agent.localdomain.lan '.

puppetserver ca list --all
puppetserver ca sign --certname agent.localdomain.lan

Dovresti visualizzare un messaggio del tipo "Richiesta di certificato firmata correttamente .... '.

Quindi, esegui il comando seguente per verificare l'elenco dei certificati sul server dei pupazzi.

puppetserver ca list-all

Dovresti vedere due certificati diversi, il certificato per il server dei pupazzi e l'agente dei pupazzi.

Ora passa di nuovo al terminale di Puppet Agent e dovresti vedere i messaggi come 'Avviso:inizializzazione SSL completata ', il che significa che le richieste di firma del certificato sono state completate correttamente.

A questo punto, sei pronto per creare un nuovo primo manifest Puppet.

Creazione del primo manifesto del burattino

In questo passaggio, creerai un nuovo primo manifest dei pupazzi per l'installazione dello stack LEMP (Nginx, MariaDB e PHP-FPM). Tutti i manifesti per l'ambiente di produzione devono essere archiviati nella directory Puppet Server '/etc/puppetlabs/code/environments/production/ '.

Cambia la tua directory di lavoro corrente in '/etc/puppetlabs/code/environments/production/ '.

cd /etc/puppetlabs/code/environments/production/

Quindi, crea una nuova directory di layout manifest per lo stack LEMP sotto i 'moduli ' directory.

mkdir -p modules/lemp/{manifests,files}

Passa a 'moduli/lamp ' e crea un nuovo file manifest Puppet 'manifests/init.pp ' usando vim/nano editor.

cd modules/lemp/
nano manifests/init.pp

Copia e incolla il seguente linguaggio di sintassi del pupazzo per l'installazione di LEMP Stack, assicurati che ogni servizio LEMP Stack sia attivo e funzionante e crea un nuovo file index.html personalizzato.

class lemp {

    Package { ensure => 'installed' }
    $lemppackages = [ 'nginx', 'mariadb-server', 'php-fpm' ]
    package { $lemppackages: }

    Service { ensure => 'running', enable => 'true'}
    $lempsvc = [ 'nginx', 'mariadb', 'php7.4-fpm' ]
    service { $lempsvc: }

    file { '/var/www/html/index.html':
     ensure  => file,
     content => "<h1><center>Welcome to Nginx - Managed by Puppet</center></h1>",
     mode    => '0644',
   }

}

Salva il file ed esci.

Quindi, esegui il comando seguente per convalidare il file manifest di Puppet 'init.pp' .

puppet parser validate init.pp

Se non hai visualizzato alcun messaggio di output, la configurazione è corretta.

Ora crea un'altra configurazione 'manifests/site.pp ' usando vim/nano editor.

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

Definisci l'host di destinazione su 'agent.localdomain.lan ' e applica il nuovo manifest Puppet 'lemp '.

node 'agent.localdomain.lan' {
    include lemp
}

Salva il file ed esci.

Verifica nuovamente la configurazione del manifest Puppet utilizzando il comando seguente.

puppet parser validate site.pp

Verifica e applicazione dei manifesti dei pupazzi

Ora hai creato un nuovo primo manifest Puppet per la distribuzione di LEMP Stack. A questo punto, il nodo Puppet Agent sincronizzerà automaticamente tutti i manifest con il Puppet Server e applicherà una nuova configurazione manifest.

Ma puoi anche applicare manualmente il manifest Puppet dal computer di Puppet Agent.

Torna all'"agente" del terminal server ed esegui il comando seguente per applicare manualmente i manifesti di Puppet.

puppet agent -t

Questo eseguirà il manifest Puppet sul computer Puppet Agent e installerà lo stack LEMP tramite i manifest Puppet 'lemp '.

Di seguito è riportato l'output che otterrai.

Ora esegui il comando seguente per verificare ogni servizio Nginx, MariaDB e PHP-FPM.

sudo systemctl status nginx
sudo systemctl status mariadb
sudo systemctl status php7.4-fpm

Dovresti vedere che ogni servizio è attivo e in esecuzione.

Ora apri il tuo browser web e digita l'indirizzo IP del tuo nodo Agent sulla barra degli indirizzi. E dovresti vedere il file index.html personalizzato di seguito.

Ora hai applicato correttamente la distribuzione dello stack LEMP alla macchina dell'agente utilizzando i manifest Puppet.

Conclusione

Congratulazioni! Ora hai installato con successo Puppet Server e Agent su Debian 11 Bullseye. Inoltre, hai imparato a creare i primi manifest Puppet per l'installazione dello stack LEMP.

ONel passaggio successivo, potrebbe essere interessante configurare un altro nodo e creare un manifest Puppet più complesso per le tue distribuzioni.


Debian
  1. Come installare Redis Server su Debian 11

  2. Come installare Puppet 6.x su Ubuntu 18.04 / Ubuntu 16.04 e Debian 9

  3. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  4. Come installare e configurare il server VNC su Debian 10

  5. Come installare MySQL Server su Debian 9

Come installare MySQL 8 su Debian 10

Come installare Todoman sul server Debian 11

Come installare e configurare Apache Web Server su Debian 11

Come installare FastPanel su Debian 11

Come installare I2P su Debian Server:

Come installare e abilitare il server SSH su Debian 10