Hvordan kontrollere Systemd med Ansible

Hvordan kontrollere Systemd med Ansible
Administrere tjenester er et av de grunnleggende kravene for enhver bruker. Med verktøy som SystemD som driver med alle store Linux -distribusjoner, er det viktig å forstå hvordan man administrerer tjenester.

Denne opplæringen vil lære deg å bruke Ansible SystemD -modulen til å starte, stoppe og administrere tjenester på enhver vert ved hjelp av SystemD Init -tjenesten.

Sette opp Ansible

Det første trinnet er å installere og konfigurere Ansible på systemet ditt. I dette eksemplet kjører vi Ansible på Debian 11 -systemet.

Begynn med å oppdatere programvarelagrene og installere Ansible:

sudo apt-get oppdatering
sudo apt -get install ansible -y

Når vi er installert, kan vi sette opp de eksterne vertene som skal administreres ved hjelp av Ansible Control Node.

Konfigurer Ansible Inventory

Åpne terminalen og rediger inventarfilen som vist i kommandoen nedenfor:

sudo vim/etc/ansible/verter

I vertsbeholdningsfilen, legg til IP -adressen til de eksterne vertene du ønsker å administrere ved hjelp av Ansible.

Sett opp SSH -tasten

Neste trinn er å lage et SSH -nøkkelpar. Dette lar deg logge på den eksterne verten fra Ansible Control Node uten å måtte skrive et passord.

Begynn med å generere en SSH -tast ved hjelp av kommandoen:

$ SSH-KeenGen

Følg instruksjonene fra SSH-Keegen-kommandoen for å generere et offentlig og privat nøkkelpar.

Når du er fullført, bruk SSH-Copy-ID-kommandoen for å kopiere din SSH Public-nøkkel til den eksterne verten.

Et eksempel -kommando er som vist:

ssh-kopy-id -i ~/.SSH/ID_RSA.pub [email protected]

Bytt ut brukernavnet og passordet med ekstern verts eksterne bruker- og IP -adresse.

Deretter skriver du inn passordet for å logge på den eksterne verten og laste opp SSH -nøkkelparet.

Når den er fullført, SSH til den eksterne verten, og du blir logget inn uten passordprompt.

Administrere tjenester med SystemD

For å administrere tjenestene på en ekstern vert ved hjelp av SystemD -modulen, må du sikre SystemD -tjenesten og System Manager Administrere den eksterne verten.

SystemD -modulen er en del av Ansible Core og er tilgjengelig i alle Ansible -installasjoner som standard.

La oss se på noen få eksempler på å bruke SystemD -modulen for å administrere tjenester på de eksterne vertene.

Starttjenester

Systemd -modulen i Ansible er grei å bruke. For eksempel, for å starte en tjeneste, bestå navnet på tjenesten og staten du vil at den skal være, i dette tilfellet, startet.

Følgende eksempel Playbook viser hvordan du starter en tjeneste ved hjelp av SystemD -modulen.

---
- Navn: Ansible Start Service
Verter: Alle
Samle_facts: True
oppgaver:
- Navn: Start en tjeneste med SystemD
Systemd:
Navn: Apache2
Stat: startet

Ovennevnte eksempler på Playbook vil starte Apache2 HTTP -serveren ved hjelp av SystemD.

Å sikre at måltjenesten er installert og administrert av SystemD på den eksterne verten er bra for å unngå feil.

Hvis tjenesten ikke eksisterer, vil Ansible kaste en feil som vist i eksempelskjermbildet nedenfor:

Stopper tjenester

Når du stopper tjenester, kan du endre tilstandsparameteren til å stoppet som vist i eksemplet på spillboken nedenfor:

---
- Navn: Ansible Stop Services
Verter: Alle
Samle_facts: True
oppgaver:
- Navn: Stopp en tjeneste med SystemD
Systemd:
Navn: Apache2
Stat: stoppet

Når den er utført vellykket, vil måltjenesten på den eksterne verten bli stoppet.

Last inn tjenester på nytt

For å laste inn en tjeneste ved hjelp av SystemD, sett staten til å laste på nytt. Det er godt å vite at du kan bruke tjenestens fulle navn eller kort som vi har gjort i tidligere spillbøker.

For eksempel:

---
- Navn: Ansible last inn en tjeneste på nytt
Verter: Alle
Samle_facts: True
oppgaver:
- Navn: Reload -tjenester med SystemD
Systemd:
Navn: Nginx.service
Stat: Reloadet

Eksemplet ovenfor vil laste inn NGINX -tjenesten som er bestått i spillboken.

Aktiver tjenester

I tilfellene der du trenger en tjeneste for å bli startet når systemstøvler opp, må du sørge for at tjenesten er aktivert.

Ansible SystemD -modulen gir deg den aktiverte parameteren, som du kan bruke for å la en tjeneste starte ved oppstart av systemet.

Tenk på eksemplet Playbook vist nedenfor:

---
- Navn: Ansible Enable Service
Verter: Alle
Samle_facts: True
oppgaver:
- Navn: Aktiver Nginx -tjeneste
Systemd:
Navn: Nginx.service
Aktivert: True
Maskert: Nei

Playbook over muliggjør Nginx -tjenesten og sikrer at den ikke er maskert.

Administrer flere tjenester

Du kan også bruke parameteren med_items til å administrere flere tjenester. For å starte forskjellige tjenester på en gang, kan vi for eksempel lage en spillbok som:

---
- Navn: Ansible Start Services
Verter: Alle
Samle_facts: True
oppgaver:
- Navn: Start disse tjenestene
Systemd:
Navn: "item"
Stat: startet
med_items:
- Apache2
- mysql
- Redis-server

Eksemplet playbook ovenfor bør starte tjenestene i med_items -blokken på nytt.

Lukking

Denne guiden viser deg hvordan du administrerer tjenester på eksterne verter ved hjelp av SystemD -modulen i Ansible.

Takk for at du leser!