GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Puppet su CentOS 8 / RHEL 8

Puppet è uno strumento di gestione della configurazione open source che ci aiuta ad automatizzare l'infrastruttura IT, inclusi il provisioning, la gestione della configurazione, l'applicazione di patch a centinaia di sistemi client dalla posizione centrale.

Puppet è disponibile per i sistemi operativi Linux, Mac, BSD, Solaris e Windows. È scritto in lingua "Ruby" e rilasciato sotto licenza Apache,

Questa guida ti aiuta a installare Puppet su CentOS 8 / RHEL 8.

Architettura

Pupper è configurato in un'architettura agent-master. In questa architettura, i nodi gestiti eseguono il software dell'agente pupazzo, come servizio in background. D'altra parte, uno o più server eseguono l'applicazione master, ad es. Server delle marionette.

L'agente burattinaio invia periodicamente fatti al burattinaio e richiede un catalogo. Il master compila e restituisce il catalogo di quel particolare nodo, utilizzando le fonti di informazioni a cui ha accesso.

Ambiente

Qui configureremo un pupazzo nell'architettura del server/agente.

burattinaio

Nome host: puppetserver.itzgeek.local

Indirizzo IP: 192.168.0.10

Sistema operativo: CentOS 8

Client fantoccio

Nome host: client.itzgeek.local

Indirizzo IP: 192.168.0.20

Sistema operativo: CentOS 8

Prerequisiti

Installa NTP

I tempi dei nodi master e client dovrebbero essere sincronizzati accuratamente con il server NTP perché il server Puppet fungerà da autorità di certificazione.

Se devi configurare il server NTP, allora:

LEGGI: Come configurare il server NTP utilizzando Chrony

Se devi configurare il client NTP, allora:

LEGGI: Come configurare il client NTP utilizzando Chrony

Se necessario, cambia anche il fuso orario del sistema.

LEGGI :Come modificare il fuso orario in CentOS 8 / RHEL 8

DNS

L'agente Puppet utilizza il nome host per comunicare con il server Puppet. Quindi, assicurati che i nodi agente possano risolvere il nome host del Puppet Server con l'aiuto del file /etc/hosts o del server DNS.

Installa e configura il server dei pupazzi

Puppet Server è il software server che viene eseguito sul nodo master. Puppet Server controlla le configurazioni dei nodi gestiti (puppet-agent).

Aggiungi repository

Per installare il server dei pupazzi, dovremmo aggiungere il repository dei pupazzi installando il pacchetto di configurazione del repository.

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

Installa pupazzo

Installa il server Puppet utilizzando il comando seguente.

yum install -y puppetserver

Assegnazione della memoria

Per impostazione predefinita, Puppet Server è configurato per utilizzare 2 GB di memoria. Puoi modificare l'allocazione della memoria in base al numero di nodi ad essa collegati.

Per questa demo, assegnerò 512 MB di memoria.

Per modificare il valore dell'allocazione di memoria, modificare il file sottostante.

vi /etc/sysconfig/puppetserver

Modifica il valore.

Da:

JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

A:

Per 512 MB, utilizza le impostazioni seguenti.

JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Configura il server dei pupazzi

Il file di configurazione di Puppet è costituito da due sezioni denominate [master] e [main] rispettivamente per il server e l'agente Pupper.

vi /etc/puppetlabs/puppet/puppet.conf

Modifica il file in base al tuo ambiente. Gli agenti Pupper possono utilizzare qualsiasi nome host menzionato in dns_alt_names per connettersi al server Pupper.

# Pupper Server Configuration
[master]
dns_alt_names = puppetserver,puppetserver.itzgeek.local

# Puppet Agent Configuration
[main]
certname = puppetserver.itzgeek.local
server = puppetserver.itzgeek.local
runinterval = 30m

Avvia il server dei pupazzi

Genera la CA di firma radice e intermedia per Puppet Server.

puppetserver ca setup
Output:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Se ottieni puppetserver:comando non trovato, esegui source /etc/profile.d/puppet-agent.sh nel terminale o disconnetti dalla sessione corrente ed effettua nuovamente il login.

Avvia e abilita il server dei pupazzi.

systemctl start puppetserver

systemctl enable puppetserver

Firewall

Il server Puppet è in ascolto sulla porta 8140. Quindi, configura il firewall per consentire agli agenti di connettersi al master.

firewall-cmd --permanent --add-port=8140/tcp

firewall-cmd --reload

Installa e configura Puppet Agent

Aggiungi repository

Per installare l'agente Puppet, dovremmo aggiungere il repository di puppet su tutti i nodi.

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

Installa agente

Installa l'agente pupazzo sul tuo client utilizzando il comando seguente.

dnf install -y puppet-agent

Modifica il file di configurazione del pupazzo e imposta le informazioni sul server dei pupazzi.

Imposta il valore del server in base al nome host del tuo server Puppet. Nel mio caso, il server è puppetserver.itzgeek.local e certname è il nome host del mio client (client.itzgeek.local).

vi /etc/puppetlabs/puppet/puppet.conf

Imposta come di seguito.

[main]
server = puppetserver.itzgeek.local
certname = client.itzgeek.local
runinterval = 30m

È possibile modificare il valore di runinterval in base al requisito. Questa impostazione controlla per quanto tempo l'agente deve attendere tra le due richieste di catalogo. Puoi impostare il valore in secondi (10 o 10 secondi), minuti (10 minuti) e ore (1 ora).

Avvia l'agente pupazzo sul nodo e fallo partire automaticamente all'avvio del sistema.

puppet resource service puppet ensure=running enable=true
Output:

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
  ensure   => 'running',
  enable   => 'true',
  provider => 'systemd',
}
Se ricevi puppet:comando non trovato, esegui il sorgente /etc/profile.d/puppet-agent.sh nel terminale o esci dalla sessione corrente e accedi nuovamente.

Firma certificato nodo agente sul server master

Dobbiamo approvare una richiesta di certificato proveniente da ciascun nodo. I nodi agente richiederanno i certificati per la prima volta se tentano di essere eseguiti.

Eseguire il comando seguente sul nodo dell'agente per effettuare una connessione iniziale. Puoi ignorare gli avvisi/gli errori.

puppet agent -t

Accedi al server Pupper ed esegui il comando seguente per visualizzare le richieste in sospeso.

puppetserver ca list
Output:

Requested Certificates:
    client.itzgeek.local       (SHA256)  06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8:EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98

Esegui il comando puppet cert sign per firmare una richiesta.

puppetserver ca sign --certname client.itzgeek.local
Output:

Successfully signed certificate request for client.itzgeek.local

Il server Puppet può ora comunicare con la macchina client e controllare il nodo.

Se hai più richieste di firma dai nodi, puoi firmare tutte le richieste in un comando.

puppetserver ca sign --all

A volte, potrebbe essere necessario revocare il certificato di un particolare nodo per rileggerlo.

Sostituisci con il nome host del tuo client.

puppetserver ca revoke --certname AGENT_NAME

Puoi elencare tutte le richieste firmate e non firmate con il comando seguente.

puppetserver ca list --all
Output:

Signed Certificates:
    puppetserver.itzgeek.local       (SHA256)  E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F:FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6  alt names: ["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", "DNS:puppetserver.itzgeek.local"]  authorization extensions: [pp_cli_auth: true]
    client.itzgeek.local             (SHA256)  EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71:02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96

Verifica client pupazzo

Una volta che Puppet Server ha firmato il certificato client, esegui il seguente comando sul computer client per testarlo.

puppet agent --test
Output:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for client.itzgeek.local
Info: Applying configuration version '1591351483'
Notice: Applied catalog in 0.01 seconds

Conclusione

Questo è Al. Spero che tu abbia imparato come installare Puppet su CentOS 8 / RHEL 8. Come ulteriore lettura, scopri come creare un semplice file manifest per creare un file e una directory sul nodo client. Condividi il tuo feedback nella sezione commenti.


Cent OS
  1. Come installare il server di posta Postfix su RHEL 8 / CentOS 8

  2. Come installare il server DNS su RHEL 8 / CentOS 8 Linux

  3. Come installare Puppet 6.x su CentOS 7 / RHEL 7

  4. Come installare Puppet su RHEL 8/CentOS 8

  5. CentOS / RHEL 7:come installare la GUI

Come installare Zabbix Server 4.x su CentOS 6 / RHEL 6

Come installare Jetty Web Server su CentOS 7 / RHEL 7

Come installare Zabbix Server 5.0/4.0 su CentOS 7/RHEL 7

Come installare il server VNC su CentOS 8 / RHEL 8

Come installare Zabbix Server 5.0 / 4.0 su CentOS 8 / RHEL 8

Come installare il server dei pupazzi su CentOS 7