GitHub-åtgärder i Ansible

Github Atgarder I Ansible



Ansible är ett populärt, gratis och öppen källkodsautomatiseringsverktyg som låter oss automatisera DevOps-uppgifterna som konfigurationshantering, appdistribution, etc.

Genom att kombinera Ansible med GitHub Actions kan vi automatisera exekveringen av Ansible-spelböcker närhelst en specifik händelse inträffar i ett arkiv, som en push till huvudgrenen.







Den här handledningen lär dig hur du ställer in en GitHub-åtgärd för att köra en Ansible-spelbok som är användbar för att automatisera distributionen som svar på kodändringar.



Förutsättningar:

Innan du fortsätter, se till att du har följande:



  • Ett GitHub-konto
  • Ett befintligt GitHub-förråd
  • Grundläggande kunskaper i Ansible playbooks
  • En målmaskin där Ansible kan köra uppgifterna. Se till att Ansible kan ansluta till dessa maskiner från en GitHub-runner.

Steg 1: Konfigurera Ansible-miljön

Skapa och lagra Ansible-spelboken och alla relaterade filer i GitHub-förvaret. Detta bör inkludera filer som rollmallar, variabler etc.





Ett exempel på en spelbok är följande:

---
- namn: Se till att Nginx är installerat på webbservrar
värdar: webbserver
bli: ja
uppgifter:
- namn: Uppdatera apt cache
benägen:
update_cache: ja

- namn: Installera Nginx
benägen:
namn: nginx
tillstånd: närvarande

Se till att du har en inventeringsfil som anger måldatorerna för Ansible.



Steg 2: Ställ in hemligheterna i GitHub Repository

Med tanke på att spelboken behöver känslig information som SSH-nycklar eller lösenord, erbjuder GitHub ett sätt att lagra hemligheterna säkert:

Navigera till ditt GitHub-förråd.

Gå till Inställningar > Hemligheter och variabler -> Åtgärder  -> Ny förvarshemlighet.

Steg 3: Skapa GitHub Action Workflow

Skapa en '.github/workflows'-katalog i förvaret. Inuti den här katalogen skapar du en YAML-fil för ditt arbetsflöde.

Lägg till arbetsflödet enligt följande:

namn: Kör Ansible Playbook
på:
skjuta på:
grenar:
- mästare
jobb:
distribuera:
runs-on: ubuntu-senaste
steg:
- namn: kassakod
använder: actions/checkout@v2
- namn: Konfigurera SSH-nyckel
kör: |
echo '${{ secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 private_key.pem
- namn: Kör Ansible Playbook
kör: |
sudo apt uppdatering
sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}

Steg 4: Utlösa arbetsflödet

Närhelst du trycker till huvudgrenen kommer GitHub automatiskt att köra detta arbetsflöde och därmed köra spelboken.

Slutsats

Det är det för den här. Vi täckte hur man kör en Ansible-spelbok med hjälp av Github-åtgärderna.