Come installare Puppet 6 su Ubuntu 18?

Scopri come installare un server Puppet & agente e impostare, in modo che si parlino.


Puppet è uno degli strumenti di gestione della configurazione più utilizzati nel mondo DevOps. Come ingegnere DevOps, devi sapere come impostare un pupazzo sul tuo sistema.

Ma prima di iniziare, lascia che ti dica che installare un pupazzo non è affatto un compito facile. Se perdi un singolo passaggio o cambi il flusso dei passaggi menzionati in questo tutorial, anche in un punto, potresti grattarti la testa tutto il giorno con un sacco di errori, ma la tua configurazione sarebbe incompleta. Quindi, segui ogni passaggio con molta attenzione.

Fantoccio ha un’architettura client-server, che consiste in un burattinaio (server) e agenti fantoccio (client). Puppet Master ha tutte le configurazioni e compila e fornisce le configurazioni agli agenti fantoccio. Gli agenti delle marionette inviano i fatti al burattinaio richiedendo cataloghi a intervalli. Puppet Master invia indietro il catalogo richiesto all’agente fantoccio. Puppet Agent applica quindi quel catalogo sul nodo e riporta al master.

Ora che hai una conoscenza di base di Puppet, iniziamo e creiamo un Puppet Master e Puppet Agent.

Se sei un principiante assoluto, ti potrebbe piacere prendere questo video corso online.

Dettagli sull’ambiente

Sto usando 2 macchine Ubuntu 18.04. Uno fungerà da burattinaio e l’altro da burattinaio. Di seguito sono riportati i dettagli delle macchine:

Puppet Master (Server)

  • Nome host: puppet, puppet.geekflate.com
  • Indirizzo IP: 192.168.0.108

Puppet Agent (client)

  • Nome host: puppetagent
  • Indirizzo IP: 192.168.0.107

Installazione di Puppet Server

Prima di iniziare l’installazione, devo modificare il file / etc / hosts su master e agent in modo che possano risolversi a vicenda.

Sul nodo principale

[Email protected]: ~ $ sudo gedit / etc / hosts

[sudo] password per geekflare:

127.0.0.1 localhost
127.0.1.1 geekflare
192.168.0.108 puppet puppet.geekflare.com

Sul nodo agente

[Email protected]: ~ $ sudo gedit / etc / hosts

127.0.0.1 localhost
127.0.1.1 geekflare
192.168.0.107 puppetagent
192.168.0.108 puppet puppet.geekflare.com

Ora, ho bisogno di ottenere un repository di marionette sul mio nodo principale e aggiornarlo.

Scarica il repository delle marionette.

[Email protected]: ~ $ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

–15-10-2019 15: 41: 34– https://apt.puppetlabs.com/puppet6-release-bionic.deb

Risoluzione di apt.puppetlabs.com (apt.puppetlabs.com) … 99.86.19.107, 99.86.19.59, 99.86.19.2, …

Connessione a apt.puppetlabs.com (apt.puppetlabs.com) | 99.86.19.107 |: 443 … connesso.

Richiesta HTTP inviata, in attesa di risposta … 200 OK

Lunghezza: 11736 (11K) [application / x-debian-package]

Salvataggio in: “puppet6-release-bionic.deb”

puppet6-release-bio 100% [===================>] 11,46 K –.- KB / s in 0 secondi

15-10-2019 15:41:34 (236 MB / s) – Salvataggio di “puppet6-release-bionic.deb” [11736/11736]

Aggiungi e configura il burattino 6 repository.

[Email protected]: ~ $ sudo dpkg -i puppet6-release-bionic.deb

Selezione del pacchetto Puppet6-release precedentemente non selezionato.

(Lettura del database … 187041 file e directory attualmente installati.)

Prepararsi a spacchettare puppet6-release-bionic.deb …

Unpacking puppet6-release (6.0.0-5bionic) …

Impostazione di Puppet6-release (6.0.0-5bionic) …

Aggiorna l’elenco dei repository.

[Email protected]: ~ $ sudo aggiornamento apt

Hit: 1 https://download.docker.com/linux/ubuntu bionic InRelease

Hit: 2 http://security.ubuntu.com/ubuntu In-Rilascio di sicurezza cosmica

Hit: 3 http://ppa.launchpad.net/ansible/ansible/ubuntu Cosmic InRelease

Ottieni: 4 http://download.virtualbox.org/virtualbox/debian cosmic InRelease [4.429 B]

Ottieni: 5 http://apt.puppetlabs.com bionic InRelease [85.3 kB]

Hit: 6 http://us.archive.ubuntu.com/ubuntu InRelease cosmico

Hit: 7 http://us.archive.ubuntu.com/ubuntu aggiornamenti cosmici InRelease

Ottieni: 8 http://download.virtualbox.org/virtualbox/debian cosmic / contrib amd64 Pacchetti [1.466 B]

Ottieni: 9 http://apt.puppetlabs.com bionic / puppet6 tutti i pacchetti [13.5 kB]

Hit: 10 http://us.archive.ubuntu.com/ubuntu Cosmic-backports InRelease

Ottieni: 11 http://apt.puppetlabs.com bionic / puppet6 Pacchetti i386 [13.5 kB]

Ottieni: 12 pacchetti http://apt.puppetlabs.com bionic / puppet6 amd64 [32.3 kB]

Recuperato 151 kB in 2s (61,9 kB / s)

Lettura degli elenchi dei pacchetti … Fine

Costruire l’albero delle dipendenze

Lettura delle informazioni sullo stato … Fatto

234 pacchetti possono essere aggiornati. Esegui ‘elenco apt – aggiornabile’ per vederli.

Installazione di Puppet Server

Eseguiamo il comando seguente sul nodo principale per installare il server delle marionette su di esso.

[Email protected]: ~ $ sudo apt installa -y puppetserver

Lettura degli elenchi dei pacchetti … Fine

Costruire l’albero delle dipendenze

Lettura delle informazioni sullo stato … Fatto

Verranno installati i seguenti pacchetti aggiuntivi:

ca-certificati-java java-common openjdk-8-jre-head-puppet-agent

Pacchetti suggeriti:

default-jre caratteri-dejavu-caratteri extra-ipafont-caratteri gotici-ipafont-mincho

fonts-wqy-microhei fonts-wqy-zenhei

Verranno installati i seguenti NUOVI pacchetti:

ca-certificati-java java-common openjdk-8-jre-head-puppet-agent

puppetserver

0 aggiornati, 5 installati di recente, 0 da rimuovere e 234 non aggiornati.

È necessario ottenere 109 MB di archivi.

Dopo questa operazione, verranno utilizzati 287 MB di spazio su disco aggiuntivo.

Ottieni: 1 http://us.archive.ubuntu.com/ubuntu cosmico / principale amd64 java-common tutto 0.68ubuntu1 [6.988 B]

Ottieni: 2 http://apt.puppetlabs.com bionic / puppet6 amd64 puppet-agent amd64 6.10.1-1bionic [19.9 MB]

Ottieni: 3 http://us.archive.ubuntu.com/ubuntu aggiornamenti cosmici / universo amd64 openjdk-8-jre-headless amd64 8u212-b03-0ubuntu1.18.10.1 [27.2 MB]

Ottieni: 4 http://apt.puppetlabs.com bionic / puppet6 amd64 puppetserver tutti 6.7.1-1bionic [61.5 MB]

Ottieni: 5 http://us.archive.ubuntu.com/ubuntu cosmico / principale amd64 ca-certificati-java tutto 20180516ubuntu1 [12.3 kB]

Presi 109 MB in 1min 41s (1.072 kB / s)

Unpacking puppetserver (6.7.1-1bionic) …

Impostazione dell’agente fantoccio (6.10.1-1bionico) …

Collegamento simbolico creato /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service.

Creato symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service.

Rimosso /etc/systemd/system/multi-user.target.wants/pxp-agent.service.

Configurare java-common (0.68ubuntu1) …

Trigger di elaborazione per libc-bin (2.28-0ubuntu1) …

Trigger di elaborazione per systemd (239-7ubuntu10.12) …

Trigger di elaborazione per man-db (2.8.4-2) …

Trigger di elaborazione per certificati ca (20180409) …

Aggiornamento dei certificati in / etc / ssl / certs…

0 aggiunti, 0 rimossi; fatto.

Esecuzione di hook in /etc/ca-certificates/update.d…

fatto.

Configurazione di ca-certificati-java (20180516ubuntu1) …

head: impossibile aprire ‘/ etc / ssl / certs / java / cacerts’ per la lettura: nessun file o directory

Aggiunta di debian: SSL.com_EV_Root_Certification_Authority_ECC.pem

Aggiunta di debian: ssl-cert-snakeoil.pem

Aggiunta di debian: SwissSign_Gold_CA _-_ G2.pem

Aggiunta di debian: SZAFIR_ROOT_CA2.pem

Aggiunta di debian: OpenTrust_Root_CA_G3.pem

Aggiunta di debian: TWCA_Root_Certification_Authority.pem

Aggiunta di debian: QuoVadis_Root_CA_2_G3.pem

Aggiunta di debian: DST_Root_CA_X3.pem

Aggiunta di debian: SecureSign_RootCA11.pem

Aggiunta di debian: QuoVadis_Root_CA_1_G3.pem

Aggiunta di debian: T-TeleSec_GlobalRoot_Class_3.pem

Aggiunta di debian: Go_Daddy_Root_Certificate_Authority _-_ G2.pem

Aggiunta di debian: Actalis_Authentication_Root_CA.pem

Aggiunta di debian: Chambers_of_Commerce_Root _-_ 2008.pem

fatto.

Trigger di elaborazione per certificati ca (20180409) …

Aggiornamento dei certificati in / etc / ssl / certs…

0 aggiunti, 0 rimossi; fatto.

Esecuzione di hook in /etc/ca-certificates/update.d…

fatto.

fatto.

Configurare openjdk-8-jre-headless: amd64 (8u212-b03-0ubuntu1.18.10.1) …

Impostazione del puppetserver (6.7.1-1bionic) …

codice utente: nessuna modifica

Trigger di elaborazione per systemd (239-7ubuntu10.12) …

Configurazione di Puppet Server

 Modifica il file puppetserver, come mostrato di seguito. Questo per configurare JVM del server delle marionette.

[Email protected]: ~ $ sudo gedit / etc / default / puppetserver

# Modificalo se desideri modificare l’allocazione di memoria, abilitare JMX, ecc

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

 Modifica file di configurazione fantoccio per modificare le impostazioni del server fantoccio.

[Email protected]: ~ $ sudo gedit /etc/puppetlabs/puppet/puppet.conf

# Questo file può essere utilizzato per sovrascrivere le impostazioni predefinite del pupazzo.

# Vedi i seguenti link per maggiori dettagli su quali impostazioni sono disponibili:

# – https://puppet.com/docs/puppet/latest/config_important_settings.html

# – https://puppet.com/docs/puppet/latest/config_about_settings.html

# – https://puppet.com/docs/puppet/latest/config_file_main.html

# – https://puppet.com/docs/puppet/latest/configuration.html

[maestro]

vardir = / opt / puppetlabs / server / data / puppetserver

logdir = / var / log / puppetlabs / puppetserver

rundir = / var / run / puppetlabs / puppetserver

pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid

codedir = / etc / puppetlabs / code

dns_alt_names = puppet, puppet.geekflare.com

[principale]

certname = puppet.geekflare.com

server = puppet.geekflare.com

ambiente = produzione

runinterval = 15m

Puppet Server deve generare una radice e una firma intermedia, CA..

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca setup

Generazione riuscita. Trova i tuoi file in / etc / puppetlabs / puppet / ssl / ca

 Avviare e abilitare il servizio fantoccio.

[Email protected]: ~ $ sudo systemctl start puppetserver

[Email protected]: ~ $ sudo systemctl abilita puppetserver

Sincronizzazione dello stato di puppetserver.service con lo script del servizio SysV con / lib / systemd / systemd-sysv-install.

Esecuzione: / lib / systemd / systemd-sysv-install abilita puppetserver

Installazione di Puppet Agent

Seguire i passaggi seguenti sul nodo agente come per il sistema principale. Il repository delle marionette deve essere presente su tutti i nodi agente.

[Email protected]: ~ $ wget https://apt.puppetlabs.com/puppet6-release-bionic.deb

[Email protected]: ~ $ sudo dpkg -i puppet6-release-bionic.deb

[Email protected]: ~ $ sudo aggiornamento apt

Esegui il comando seguente sul nodo dell’agente per installare l’agente fantoccio.

[Email protected]: ~ $ sudo apt installa -y puppet-agent

Lettura degli elenchi dei pacchetti … Fine

Costruire l’albero delle dipendenze

Lettura delle informazioni sullo stato … Fatto

Verranno installati i seguenti NUOVI pacchetti:

fantoccio-agent

0 aggiornati, 1 appena installato, 0 da rimuovere e 233 non aggiornati.

È necessario ottenere 19,9 MB di archivi.

Dopo questa operazione, verranno utilizzati 115 MB di spazio su disco aggiuntivo.

Ottieni: 1 http://apt.puppetlabs.com bionic / puppet6 amd64 puppet-agent amd64 6.10.1-1bionic [19.9 MB]

Prelevato 19,9 MB in 2s (8.488 kB / s)

Selezione del pacchetto puppet-agent precedentemente non selezionato.

(Lettura del database … 185786 file e directory attualmente installati.)

Preparazione per decomprimere … / puppet-agent_6.10.1-1bionic_amd64.deb …

Disimballaggio del burattinaio (6.10.1-1bionico) …

Impostazione dell’agente fantoccio (6.10.1-1bionico) …

Collegamento simbolico creato /etc/systemd/system/multi-user.target.wants/puppet.service → /lib/systemd/system/puppet.service.

Creato symlink /etc/systemd/system/multi-user.target.wants/pxp-agent.service → /lib/systemd/system/pxp-agent.service.

Rimosso /etc/systemd/system/multi-user.target.wants/pxp-agent.service.

Trigger di elaborazione per libc-bin (2.28-0ubuntu1) …

Configurazione di Puppet Agent

 Modifica il file di configurazione fantoccio sul nodo dell’agente.

[Email protected]: ~ $ sudo gedit /etc/puppetlabs/puppet/puppet.conf

[principale]

certname = puppetagent

server = puppet.geekflare.com

ambiente = produzione

runinterval = 15m

Esegui il comando seguente per avviare il servizio fantoccio. Questo comando si avvierà automaticamente anche dopo l’avvio.

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppet servizio risorse burattino si assicura = esecuzione abilita = vero

servizio {‘burattino’:

assicurare => ‘in esecuzione’,

abilita => ‘vero’,

Generare e firmare certificati

Quando l’agente si avvia per la prima volta, invia una richiesta di firma del certificato al burattinaio. Il master deve controllare e firmare questo certificato. Successivamente, l’agente recupererà i cataloghi dal master e li applicherà regolarmente ai nodi agent.

Ora che l’agente fantoccio è in esecuzione, eseguire il comando seguente sul nodo principale per verificare se ha ricevuto una richiesta di firma del certificato.

Sul nodo principale

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca elenco

[sudo] password per geekflare:

Certificati richiesti:

puppetagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

Firma il certificato inviato dall’agente.

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca elenco

[sudo] password per geekflare:

Certificati richiesti:

puppetagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

Eseguire il comando seguente per controllare tutto l’elenco dei certificati. Un certificato è già presente, si tratta del nodo principale predefinito e l’altro proviene dal nodo agente.

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppetserver ca list –all

Certificati firmati:

puppetagent (SHA256) EA: 68: 23: B5: C3: 71: 2C: E6: 4A: 6A: 3B: 2F: 24: F5: B8: 5B: 50: F7: 3F: 12: 89: DE: B1: EB: D1: 0A: 74: 3E: 48: C3: D7: 35

puppet.geekflare.com (SHA256) 71: 30: 5B: C8: C5: CE: 28: A0: 60: 5C: 4F: 39: 26: D0: FC: DA: DF: 0A: 0F: 4D: ED: D4: B1: 9C: 05: 1A: 38: 2F: D6: 5F: 9C: 06 nomi alt: ["DNS: puppet.geekflare.com", "DNS: Burattino", "DNS: puppet.geekflare.com"]

Sul nodo agente

Ora esegui questo comando per verificare se la connessione è stata stabilita tra i nodi master e agent e tutto funziona correttamente.

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppet agent –test

Informazioni: utilizzo dell’ambiente di produzione ‘produzione’

Informazioni: recupero dei pluginfacts

Informazioni: recupero plug-in

Informazioni: recupero delle impostazioni locali

Info: catalogo di cache per burattinaio

Informazioni: applicazione della versione di configurazione ‘1571171191’

Avviso: catalogo applicato in 0,02 secondi

Esempio di pupazzo

Facciamo un semplice esempio di marionetta. Creerò un semplice manifest di marionette, che crea una directory con una certa autorizzazione.

Sul nodo principale:

[Email protected]: ~ $ sudo gedit /etc/puppetlabs/code/environments/production/manifests/site.pp

 Inserisci il contenuto di seguito.

node ‘puppetagent’ {# Si applica solo al nodo menzionato. Se non menzionato, vale per tutti.

file {‘/ home / test’: # File del tipo di risorsa

assicurare => ‘directory’, # Crea una directory

proprietario => ‘root’, # Proprietà

gruppo => ‘root’, # Nome gruppo

mode => ‘0755’, # Autorizzazioni directory

}

}

Ora esegui il comando seguente affinché un agente possa raggiungere il master ed estrarre le configurazioni. Dopo aver eseguito questo comando, dovrebbe creare quella directory sul nodo dell’agente.

Sul nodo agente

[Email protected]: ~ $ sudo / opt / puppetlabs / bin / puppet agent –test

[sudo] password per geekflare:

Informazioni: utilizzo dell’ambiente di produzione ‘produzione’

Informazioni: recupero dei pluginfacts

Informazioni: recupero plug-in

Informazioni: recupero delle impostazioni locali

Info: catalogo di cache per marionette

Informazioni: applicazione della versione di configurazione ‘1571333010’

Avviso: / Fase [principale] / Principale / Nodo [puppetagent] / File [/ home / test] / assicurarsi: creato

Avviso: catalogo applicato in 0,05 secondi

Eseguire il comando ls per verificare se il direttore è stato creato correttamente. 

[Email protected]: ~ $ ls -l / home /

totale 32

drwxr-xr-x 13 geekflare geekflare 4096 lug 19 08:06 geekflare

drwx —— 2 radice radice 16384 23 ottobre 2018 perso + trovato

drwxr-xr-x 23 geekflare geekflare 4096 ott 17 11:02 geekflare

drwxr-xr-x 2 root root 4096 ott 17 13:23 test

drwxr-xr-x 2 nome utente username 4096 29 giugno 09:38 nome utente

Ecco qua!

Conclusione

Questo è stato un semplice esempio per dimostrarne il funzionamento. Ma immagina uno scenario più ampio, in cui devi installare o applicare una determinata configurazione su centinaia di server. Puppet può aiutarti a raggiungerlo in pochi minuti.

Se sei coinvolto nell’automazione e interessato a saperne di più, puoi verificarlo Corso Udemy, che parla di Ansible, Puppet e Salt.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map