Installa Puppet Master e Agent su CentOS 8/RHEL 8
Ora che le distribuzioni Linux CentOS 8 e RHEL 8 sono disponibili per l'uso in produzione, come è possibile installare Puppet Master e Puppet Agent su CentOS 8/RHEL 8?. Puppet è uno dei motori di gestione dell'automazione e della configurazione leader e ampiamente adottato per i sistemi Linux, Unix e Windows. Puppet utilizza un'architettura agent-master o client-server, ma è possibile realizzare un'architettura autonoma.
Puppet ti consente di automatizzare il modo in cui i tuoi team applicano lo stato, proteggono e forniscono l'infrastruttura più velocemente. Se occorrono giorni per aggiungere utenti al sistema, installare pacchetti richiesti dagli sviluppatori o aggiornare le configurazioni del server in modo che corrispondano allo stato desiderato, benvenuto in Puppet.
Il server Puppet e i pacchetti agente sono distribuiti su un repository YUM, supportato e aggiornato da Puppet. Utilizza la nostra guida per installare Puppet Master e Puppet Agent sul sistema Linux CentOS 8/RHEL 8.
Requisiti di installazione
Questi sono i requisiti hardware minimi.
- 2 distribuzioni Linux CentOS 8/RHEL 8 – Master e agente
- 4GB di RAM sul Master
- 2vcpus sul master
- Almeno 10 GB di spazio su disco
- accesso sudo
Una volta soddisfatti i requisiti hardware e software, segui i passaggi seguenti per installare Puppet su RHEL 8/CentOS 8.
Passaggio 1: aggiornamento del sistema
Avviare la configurazione da un sistema Linux aggiornato.
sudo dnf -y update
Poiché gli aggiornamenti del kernel a volte vengono installati al termine dell'aggiornamento, è buona norma riavviare il computer.
sudo reboot
Passaggio 2: aggiungi il repository Puppet YUm
Installeremo i pacchetti Puppet dal repository YUM ufficiale del progetto. Aggiungerò il repository EPEL e il repository Puppet.
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf -y install https://yum.puppetlabs.com/puppet-release-el-8.noarch.rpm
Passaggio 3: installa Puppet Master su CentOS 8/RHEL 8
Il pacchetto installato sulla macchina Puppet Master/Server è diverso da quello installato sui Nodi gestiti (Agente). Il pacchetto richiesto sui nodi Puppet Master è puppetserver
. Installa questo pacchetto eseguendo il comando seguente:
sudo dnf -y install puppetserver
Le dipendenze richieste come Java verranno installate automaticamente.
Dopo l'installazione, non avviare i servizi, basta aprire la porta del servizio sul firewall.
sudo firewall-cmd --add-port=8140/tcp --permanent
sudo firewall-cmd --reload
Passaggio 4: configurare un server Puppet Master su CentOS 8/RHEL 8
Dopo aver installato Puppet sui server master, è possibile eseguire la configurazione.
Imposta il nome host del server corretto:
sudo hostnamectl set-hostname puppetmaster.computingforgeeks.com --static
sudo hostnamectl set-hostname puppetmaster.computingforgeeks.com --transient
logout
Aggiungi il nome host e l'IP del server al file /etc/hosts.
$ sudo vi /etc/hosts
10.10.1.152 puppetmaster.computingforgeeks.com puppetmaster
Accedi e conferma la configurazione del nome host.
$ hostnamectl
Static hostname: puppetmaster.computingforgeeks.com
Icon name: computer-vm
Chassis: vm
Machine ID: c0d6dc5d688e4304baca26862df123cc
Boot ID: f3b99e71ee7743c8b9a67df4c82fa364
Virtualization: kvm
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-80.7.1.el8_0.x86_64
Architecture: x86-64
Imposta l'ora corretta/NTP
Imposta il fuso orario.
sudo timedatectl set-timezone Africa/Nairobi
Quindi configurare NTP.
- Configura il client NTP utilizzando Chrony su RHEL 8/CentOS 8
Imposta i limiti di memoria
L'allocazione di memoria predefinita per il processo Puppet Java è 2 GB, questo può essere modificato nel file /etc/sysconfig/puppetserver
. Sostituisci 2g con la quantità di memoria che desideri allocare a Puppet Server.
L'esempio seguente imposta il limite su 1 GB.
$ sudo vi /etc/sysconfig/puppetserver
......
JAVA_ARGS="-Xms1g -Xmx1g ...."
Imposta i nomi DNS di Puppet Master
Quando crei il certificato del burattinaio, devi includere tutti i nomi DNS con cui i nodi agente potrebbero tentare di contattare il master.
Aggiungi la riga dns_alt_names nella sezione blocco [master] .
$ sudo vi /etc/puppetlabs/puppet/puppet.conf
[master]
dns_alt_names = puppetmaster,puppetmaster.computingforgeeks.com,puppetmaster01
.....
Aggiungi la sezione [main] con il nome del server e l'ambiente predefinito.
[main]
certname = puppetmaster.computingforgeeks.com
server = puppetmaster.computingforgeeks.com
environment = production
Crea il certificato CA e il certificato del burattinaio
Dopo aver aggiornato i nomi DNS, esegui il comando seguente per generare il certificato CA e i certificati master pupazzo con i nomi DNS appropriati.
$ sudo su -
# puppetserver ca setup
Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Avvia e imposta il servizio pupazzoserver in modo che venga avviato all'avvio del sistema.
sudo systemctl enable --now puppetserver
Se l'installazione e la configurazione sono state eseguite correttamente, il servizio dovrebbe essere avviato.
$ systemctl status puppetserver
● puppetserver.service - puppetserver Service
Loaded: loaded (/usr/lib/systemd/system/puppetserver.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-02-24 01:56:04 EAT; 1min 36s ago
Process: 14297 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
Main PID: 14322 (java)
Tasks: 42 (limit: 4915)
Memory: 695.0M
CGroup: /system.slice/puppetserver.service
└─14322 /usr/bin/java -Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError=kill -9 %p -XX:ErrorFile=/var/log/puppetlabs/puppetserver/pup>
Feb 24 01:55:18 puppetmaster.computingforgeeks.com systemd[1]: Starting puppetserver Service...
Feb 24 01:56:04 puppetmaster.computingforgeeks.com systemd[1]: Started puppetserver Service.
Passaggio 4: configurare un agente Puppet su CentOS 8/RHEL 8
Sul tuo secondo server – Macchina da gestire, installa Puppet Agent.
sudo dnf -y install https://yum.puppetlabs.com/puppet-release-el-8.noarch.rpm
sudo dnf -y install puppet-agent
Aggiungi il nome DNS e l'IP del server Puppet al file /etc/hosts .
$ sudo vi /etc/hosts
10.10.1.152 puppetmaster.computingforgeeks.com puppetmaster
Configura l'agente Puppet
Aggiungi la sezione [main] con il nome del server e l'ambiente predefinito.
[main]
certname = puppet-agent.novalocal
server = puppetmaster.computingforgeeks.com
environment = production
Controlla la connessione dall'agente al burattinaio.
$ puppet agent --test --ca_server=puppetmaster.computingforgeeks.com
Il tuo output dovrebbe essere simile al seguente.
Accedi al server principale e accetta il certificato da Puppet Client.
# puppetserver ca list
Requested Certificates:
puppet-agent.novalocal (SHA256) 21:81:3B:11:7A:A7:9D:37:21:5C:23:91:60:5D:CF:BB:4F:BC:61:1E:C8:9F:28:5F:93:53:D2:A6:31:21:B7:27
Firma il certificato.
# puppetserver ca sign --certname puppet-agent.novalocal
Successfully signed certificate request for puppet-agent.novalocal
# puppetserver ca list
No certificates to list
Passaggio 5: crea un manifesto di prova su Puppet Master
Crea un nuovo file pupazzo.
sudo vi /etc/puppetlabs/code/environments/production/manifests/mytest.pp
Aggiungi i contenuti di seguito.
package { 'nginx':
provider => yum,
ensure => installed,
}
file { '/tmp/mypuppettest.txt':
ensure => file,
content => 'This is my puppet testing file.',
}
Sul client eseguire:
sudo systemctl restart puppet
È possibile eseguire il manifesto dei pupazzi localmente.
# puppet apply /etc/puppetlabs/code/environments/production/manifests/mytest.pp
Notice: Compiled catalog for puppetmaster.computingforgeeks.com in environment production in 0.41 seconds
Notice: /Stage[main]/Main/Package[nginx]/ensure: created
Notice: Applied catalog in 3.95 seconds
Hai installato Puppet Master e l'agente Puppet configurato su un server CentOS/RHEL Linux. Leggi di più sulla documentazione di Puppet per ottenere tutte le competenze necessarie per gestire Puppet Server e tutta l'automazione della tua infrastruttura.
Guide correlate:
- Installa Ansible su RHEL/CentOS 8
- Installa Chef Server su RHEL/CentOS 8
- Installa Chef Workstation su RHEL/CentOS 8
- Automatizza semplici attività ripetitive con Ansible
- Iniziare con il coltello da chef e i libri di cucina