Questo tutorial ti insegnerà a utilizzare il modulo Systemd Ansible per avviare, arrestare e gestire i servizi su qualsiasi host utilizzando il servizio Systemd init.
Impostazione di Ansible
Il primo passo è installare e configurare Ansible sul sistema. In questo esempio, gestiamo Ansible su Debian 11 System.
Inizia aggiornando i repository del software e installando Ansible:
Sudo Apt-get Aggiornamento
sudo apt -get installa ansible -y
Una volta installati, possiamo impostare gli host remoti da gestire utilizzando il nodo di controllo Ansible.
Configurare l'inventario Ansible
Apri il terminale e modifica il file di inventario come mostrato nel comando seguente:
sudo vim/etc/ansible/host
Nel file di inventario host, aggiungi l'indirizzo IP degli host remoti che si desidera gestire utilizzando Ansible.
Imposta chiave SSH
Il prossimo passo è creare una coppia di tasti SSH. Ciò consente di accedere all'host remoto dal nodo di controllo Ansible senza la necessità di digitare una password.
Inizia generando una chiave SSH usando il comando:
$ ssh-keygen
Segui le istruzioni del comando ssh-keygen per generare una coppia di chiave pubblica e privata.
Una volta completato, utilizzare il comando SSH-Copy-ID per copiare la chiave pubblica SSH sull'host remoto.
Un comando di esempio è come mostrato:
ssh-copy-id -i ~/.SSH/ID_RSA.pub [email protected]
Sostituisci il nome utente e la password con l'utente remoto e l'indirizzo IP dell'host remoto.
Quindi, inserisci la password per accedere all'host remoto e caricare la coppia di tasti SSH.
Una volta completato, SSH nell'host remoto e verrà effettuato l'accesso senza un prompt password.
Gestione dei servizi con SystemD
Per gestire i servizi su un host remoto utilizzando il modulo SystemD, assicurarsi che il servizio SystemD e System Manager gestiscano l'host remoto.
Il modulo SystemD fa parte di Ansible Core ed è disponibile in tutte le installazioni Ansible per impostazione predefinita.
Diamo un'occhiata ad alcuni esempi di utilizzo del modulo SystemD per gestire i servizi sugli host remoti.
Servizi di partenza
Il modulo Systemd in Ansible è semplice da usare. Ad esempio, per avviare un servizio, passare il nome del servizio e lo stato in cui si desidera, in questo caso, avviato.
Il seguente esempio di playbook mostra come avviare un servizio utilizzando il modulo SystemD.
---
- Nome: ANSIBLE Avvia servizio
Host: tutto
Gather_Facts: vero
compiti:
- Nome: Avviare un servizio con SystemD
SystemD:
Nome: Apache2
Stato: iniziato
L'esempio sopra Playbook avvia il server Apache2 HTTP utilizzando SystemD.
Garantire che il servizio target sia installato e gestito da SystemD sull'host remoto è utile per evitare errori.
Se il servizio non esiste, Ansible lancerà un errore come mostrato nello screenshot di esempio di seguito:
Servizi di arresto
Quando si interrompe i servizi, modificare il parametro di stato in fermo come mostrato nel playbook di esempio seguente:
---
- Nome: Ansible Stop Services
Host: tutto
Gather_Facts: vero
compiti:
- Nome: arrestare un servizio con SystemD
SystemD:
Nome: Apache2
Stato: fermato
Una volta eseguito correttamente, il servizio target sull'host remoto verrà fermato.
Ricarica servizi
Per ricaricare un servizio utilizzando SystemD, impostare lo stato sullo ricaricare. È bene sapere che puoi utilizzare il nome completo del servizio o breve come abbiamo fatto nei playbook precedenti.
Per esempio:
---
- Nome: Ansible Ricarica un servizio
Host: tutto
Gather_Facts: vero
compiti:
- Nome: ricarica servizi con systemd
SystemD:
Nome: nginx.servizio
Stato: ricaricato
L'esempio sopra ricaricherà il servizio Nginx come passato nel playbook.
Abilita servizi
Nei casi in cui è necessario avviare un servizio quando il sistema si avvia, è necessario assicurarsi che il servizio sia abilitato.
Il modulo ANSible SystemD fornisce il parametro abilitato, che è possibile utilizzare per consentire l'avvio di un servizio all'avvio del sistema.
Considera l'esempio di playbook mostrato di seguito:
---
- Nome: Ansible Abilita Service
Host: tutto
Gather_Facts: vero
compiti:
- Nome: Abilita servizio Nginx
SystemD:
Nome: nginx.servizio
Abilitato: vero
mascherato: no
Il playbook sopra consente il servizio Nginx e assicura che non sia mascherato.
Gestisci più servizi
È inoltre possibile utilizzare il parametro With_Items per gestire più servizi. Ad esempio, per iniziare vari servizi contemporaneamente, possiamo creare un playbook come:
---
- Nome: Ansible Start Services
Host: tutto
Gather_Facts: vero
compiti:
- Nome: avvia questi servizi
SystemD:
nome: "item"
Stato: iniziato
with_items:
- Apache2
- mysql
- Redis-Server
Il playbook di esempio sopra dovrebbe riavviare i servizi nel blocco With_Items.
Chiusura
Questa guida mostra come gestire i servizi su host remoti utilizzando il modulo Systemd in Ansible.
Grazie per aver letto!