Ricerca nel sito web

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

Articoli correlati: