GitHub-handlinger i Ansible

Github Handlinger I Ansible



Ansible er et populært, gratis og åpen kildekode-automatiseringsverktøy som lar oss automatisere DevOps-oppgavene som konfigurasjonsadministrasjon, app-distribusjon osv.

Ved å kombinere Ansible med GitHub Actions kan vi automatisere kjøringen av Ansible-spillebøker hver gang en spesifikk hendelse oppstår i et depot, som et push til hovedgrenen.







Denne opplæringen lærer deg hvordan du setter opp en GitHub-handling for å kjøre en Ansible-spillebok som er nyttig for å automatisere distribusjonen som svar på kodeendringer.



Forutsetninger:

Før du fortsetter, sørg for at du har følgende:



  • En GitHub-konto
  • Et eksisterende GitHub-depot
  • Grunnleggende kunnskap om Ansible playbooks
  • En målmaskin hvor Ansible kan kjøre oppgavene. Sørg for at Ansible kan koble til disse maskinene fra en GitHub-løper.

Trinn 1: Sett opp Ansible-miljøet

Opprett og lagre Ansible-spilleboken og alle relaterte filer i GitHub-depotet. Dette bør inkludere filer som rollemaler, variabler osv.





Et eksempel på spillebok er som følger:

---
- navn: Sørg for at Nginx er installert på webservere
verter: webserver
bli: ja
oppgaver:
- navn: Oppdater apt cache
passende:
update_cache: ja

- navn: Installer Nginx
passende:
navn: nginx
tilstand: tilstede

Sørg for at du har en inventarfil som spesifiserer målmaskinene for Ansible.



Trinn 2: Sett opp hemmelighetene i GitHub Repository

Gitt at spilleboken trenger sensitiv informasjon som SSH-nøkler eller passord, gir GitHub en måte å lagre hemmelighetene sikkert på:

Naviger til GitHub-depotet ditt.

Gå til Innstillinger > Hemmeligheter og variabler -> Handlinger  -> Ny repositoryhemmelighet.

Trinn 3: Lag GitHub Action Workflow

Opprett en '.github/workflows'-katalog i depotet. Inne i denne katalogen oppretter du en YAML-fil for arbeidsflyten din.

Legg til arbeidsflyten som følger:

navn: Kjør Ansible Playbook
på:
trykk:
grener:
- mester
arbeidsplasser:
utplassere:
kjører på: ubuntu-nyeste
trinn:
- navn: Kassekode
bruker: actions/checkout@v2
- navn: Sette opp SSH-nøkkel
løp: |
ekko '${{ secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 private_key.pem
- navn: Kjør Ansible Playbook
løp: |
sudo apt oppdatering
sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}

Trinn 4: Utløs arbeidsflyten

Hver gang du trykker til hovedgrenen, vil GitHub automatisk kjøre denne arbeidsflyten og kjører dermed spilleboken.

Konklusjon

Det er det for denne. Vi dekket hvordan du kjører en Ansible-spillebok ved å bruke Github-handlingene.