GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Puppet 4 su CentOS e Ubuntu? [Maestro e agente]

Puppet, un noto strumento di gestione della configurazione per sistemi basati su Unix e Windows che consente a un amministratore di automatizzare facilmente le attività di amministrazione del sistema ripetitive e soggette a errori, che includono il provisioning, l'installazione di pacchetti/software, le configurazioni e la gestione dell'intera infrastruttura. Puppet è disponibile in due versioni:Puppet Enterprise e Puppet open source. Come suggerisce il nome, la versione enterprise è un prodotto commerciale e la versione open source può essere scaricata gratuitamente. Questo tutorial tratterà come installare e configurare Puppet open source (versione 4) su sistemi basati su CentOS e Ubuntu.

Prima di iniziare con la procedura di installazione, cerchiamo di capire l'architettura del pupazzo.

Architettura del burattinaio/agente

Puppet generalmente funziona in base al modello Client/Server, ovvero l'architettura basata su Master/Agent, ovvero Puppet Master e Puppet Agent. Il Puppet Master controlla le informazioni di configurazione e i nodi Puppet Agent gestiti richiedono i propri cataloghi di configurazione. Il diagramma seguente illustra il flusso di comunicazione tra i nodi master e agent.

Cos'è il catalogo?

Il catalogo è un documento che contiene informazioni sullo stato desiderato di un sistema. Il Puppet master compila il catalogo e gli agenti Puppet lo applicano.

Ambiente di installazione dei pupazzi

In questo tutorial utilizzerò due nodi:puppetmaster.test.in (Puppet Master) e puppet.test.in (Puppet Agent) (sono macchine virtuali in esecuzione su OpenStack)

Come installare e configurare Puppet 4?

Passaggio 1: Il primo passaggio consiste nel verificare la visibilità della rete tra il nodo master e quello agente. Dovrai assicurarti che questi domini vengano risolti tramite DNS o dal file hosts.

Nel nodo Puppet Master:

# ping puppetagent
 PING puppetagent.test.in (10.180.141.126) 56(84) bytes of data.
 64 bytes from puppetagent.test.in (10.180.141.126): icmp_seq=1 ttl=64 time=0.347 ms
 --- puppetagent.test.in ping statistics ---
 1 packets transmitted, 1 received, 0% packet loss, time 0ms
 rtt min/avg/max/mdev = 0.347/0.347/0.347/0.000 ms

Nel nodo dell'agente pupazzo:

# ping puppetmaster
 PING puppetmaster.test.in (10.180.141.125) 56(84) bytes of data.
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=1 ttl=64 time=0.711 ms
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=2 ttl=64 time=0.316 ms
 --- puppetmaster.test.in ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
 rtt min/avg/max/mdev = 0.316/0.513/0.711/0.198 ms

Passaggio 2: Installa NTP

Il nodo Puppet Master fungerà da C certificato A uthority (CA) ed emettere certificati per i nodi agente. Significa che il nodo Master deve sincronizzarsi con l'ora corretta per evitare problemi durante l'emissione dei certificati ai nodi dell'agente. Quindi, devi installare NTP e sincronizzarlo con il time server di tua scelta.

Controlla i fusi orari disponibili nel nodo principale:

# timedatectl list-timezones

Imposta il fuso orario regionale corretto:

# timedatectl set-timezone Asia/Kolkata

Installa NTP:

# yum install ntp

Sincronizza con il time server di tua scelta:

# ntpdate pool.ntp.org

Apri ntp.conf e aggiungi i time server di tua scelta.

# vim /etc/ntp.conf

Salva ed esci.

Avvia e abilita il servizio NTP:

# systemctl restart ntpd
# systemctl enable ntpd

Nota :puoi anche configurare NTP sui nodi agente. Per farlo, segui il passaggio 2 anche sui nodi Puppet Agent.

Installa Puppet Server (sul nodo Master)

Il server Puppet è un programma che viene eseguito sul nodo master Puppet e, come illustrato nel diagramma dell'architettura, questo servizio creerà un catalogo e invierà le configurazioni ai nodi dell'agente Puppet.

Passaggio 1: Per installare i servizi Puppet, è necessario abilitare il repository di raccolta Puppet o rilasciare i pacchetti. Per i sistemi operativi basati su Yum, puoi trovare i pacchetti su yum.puppetlabs.com e per i sistemi basati su Apt su apt.puppetlabs.com .

Su CentOS, utilizzerò il repository di puppet basato sui pacchetti rpm.

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
puppetlabs-release-pc1-1.0.0-2.el################################# [100%]

Su Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
# apt-get update

Installa pacchetto server Puppet:

Su CentOS:

# yum -y install puppetserver

Su Ubuntu:

# apt-get install puppetserver

Avvia il server dei pupazzi:

# systemctl start puppetserver

(o)

# service puppetserver start

Abilita l'avvio del server puppet durante l'avvio del sistema

# systemctl enable puppetserver

(o)

# chkconfig puppetserver on

Installazione di Puppet Agent (su nodi Agent)

Installeremo il servizio Puppet Agent sui nodi dell'agente e questi sono i nodi che ricevono il catalogo dal nodo master Puppet e li applicano.

Abilita repository di raccolta Puppet:

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

Su Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
$ sudo apt-get update

Installa agente pupazzo:

Su CentOS:

# yum -y install puppet-agent

Su Ubuntu:

# apt-get install puppet-agent

Avvia l'agente dei pupazzi:

Per impostazione predefinita, l'agente farà riferimento al nodo master Puppet come "puppet". Inoltre, il comando seguente mostrerà il nome host che l'agente utilizzerà per connettersi al Master.

# /opt/puppetlabs/puppet/bin/puppet agent --configprint server
puppet
# /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
 Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
 service { 'puppet':
 ensure => 'running',
 enable => 'true',
 }

Nota :Cerca il server impostazione in puppet.conf per cambiare il nome host del burattinaio.

Nota :Per impostazione predefinita, Puppet verrà installato in /opt/puppetlabs cartella.

Richiedi il certificato per il nodo Agent all'autorità di certificazione

Il nodo master Puppet fungerà da autorità di certificazione, che firma il certificato dei nodi agente.

# /opt/puppetlabs/puppet/bin/puppet agent -t
 Info: Caching certificate for ca
 Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
 Info: Creating a new SSL certificate request for puppetagent.test.in
 Info: Certificate Request fingerprint (SHA256): BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A
 Info: Caching certificate for ca
 Exiting; no certificate found and waitforcert is disabled

Nel nodo Puppet Master – Firma la richiesta di certificato dell'agente

Elenca le richieste di certificati correnti:

# /opt/puppetlabs/puppet/bin/puppet cert list
  "puppetagent.test.in" (SHA256) BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A

Firma il certificato:

# /opt/puppetlabs/puppet/bin/puppet cert sign puppetagent.test.in
Notice: Signed certificate request for puppetagent.test.in
Notice: Removing file Puppet::SSL::CertificateRequest puppetagent.test.in at '/etc/puppetlabs/puppet/ssl/ca/requests/puppetagent.test.in.pem'

Visualizza tutte le richieste firmate:

# /opt/puppetlabs/puppet/bin/puppet cert list --all
+ "puppetagent.test.in"  (SHA256) 0F:41:D0:67:78:BB:7B:48:F8:4B:10:10:C4:F9:FD:DD:46:19:34:4B:BE:4D:6F:4B:2F:45:57:86:33:C2:BC:45
+ "puppetmaster.test.in" (SHA256) 4A:F3:F7:C0:81:7D:76:49:77:31:81:B1:70:50:AE:EE:F9:49:95:22:B0:24:0C:08:C3:5E:30:E6:29:75:28:07 (alt names: "DNS:puppet", "DNS:puppetmaster.test.in")

E hai finito! La tua prima infrastruttura di pupazzi è pronta.

Testiamo il burattino

Puppet utilizza uno strumento chiamato Facter per raccogliere informazioni (fatti) sugli agenti burattinai. Per impostazione predefinita, vengono raccolte le informazioni come il nome del sistema operativo, la versione, il nome host, l'indirizzo IP, le chiavi SSH ecc. Ma ti consente anche di aggiungere fatti personalizzati, di cui parlerò in un articolo separato.

In che modo i fatti sono utili?

Durante la creazione di un modello di configurazione, potresti voler recuperare automaticamente un fatto (ad esempio l'indirizzo IP di un nodo agente) e compilarlo nella posizione appropriata. Allo stesso modo, potresti voler leggere un nome host di un nodo agente e usarlo nel modello di configurazione.

Il comando seguente (eseguilo sul nodo Master) elencherà tutti i fatti raccolti di un nodo Agent.

# /opt/puppetlabs/puppet/bin/facter

Risultato di esempio:

:::::::::::::::::::::::::::::::
partitions => {
/dev/vda1 => {
filesystem => "xfs",
mount => "/",
size => "39.99 GiB",
size_bytes => 42943138304,
uuid => "6c8f1327-a7c0-40a2-8bb3-89ea95a69d82"
}
}
path => /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
processors => {
count => 2,
isa => "x86_64",
models => [
"Intel Core Processor (Haswell, no TSX)",
"Intel Core Processor (Haswell, no TSX)"
],
physicalcount => 2
}
:::::::::::::::::::::::::::::::::::::::::

Questo è tutto! Ora devi comprendere Manifest e moduli per utilizzare Puppet in modo efficace .


Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Installa Puppet Master e Agent su Ubuntu 20.04

  5. Come installare Puppet master e client in Ubuntu 14.04

Installa e configura Puppet su CentOS 7 / RHEL 7

Come installare e configurare OpenVAS 9 su Ubuntu

Come installare e configurare Redis in Ubuntu 20.04

Come installare e configurare Redis su CentOS 8

Come installare e configurare Neo4j su Ubuntu 20.04

Come installare e configurare Smartctl su CentOS/RHEL 8 e Ubuntu 20.04