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!