GitHub-acties in Ansible

Github Acties In Ansible



Ansible is een populaire, gratis en open-source automatiseringstool waarmee we DevOps-taken kunnen automatiseren, zoals configuratiebeheer, app-implementatie, enz.

Door Ansible te combineren met GitHub Actions kunnen we de uitvoering van Ansible-playbooks automatiseren wanneer een specifieke gebeurtenis plaatsvindt in een repository, zoals een push naar de hoofdvertakking.







In deze zelfstudie leert u hoe u een GitHub-actie instelt om een ​​Ansible-playbook uit te voeren, wat handig is voor het automatiseren van de implementatie als reactie op codewijzigingen.



Vereisten:

Voordat u verdergaat, moet u ervoor zorgen dat u over het volgende beschikt:



  • Een GitHub-account
  • Een bestaande GitHub-opslagplaats
  • Basiskennis van Ansible-speelboeken
  • Een doelmachine waarop Ansible de taken kan uitvoeren. Zorg ervoor dat Ansible verbinding kan maken met deze machines vanaf een GitHub-runner.

Stap 1: Stel de Ansible-omgeving in

Creëer en bewaar het Ansible-playbook en alle gerelateerde bestanden in de GitHub-repository. Dit moeten bestanden bevatten zoals de rolsjablonen, variabelen, enz.





Een voorbeeld van een draaiboek is als volgt:

---
- naam: Zorg ervoor dat Nginx op webservers is geïnstalleerd
hosts: webserver
worden: ja
taken:
- naam: update apt-cache
geschikt:
update_cache: ja

- naam: Installeer Nginx
geschikt:
naam: nginx
staat: aanwezig

Zorg ervoor dat u over een inventarisbestand beschikt waarin de doelmachines voor Ansible worden gespecificeerd.



Stap 2: Stel de geheimen in GitHub Repository in

Aangezien het playbook gevoelige informatie nodig heeft, zoals SSH-sleutels of wachtwoorden, biedt GitHub een manier om de geheimen veilig op te slaan:

Navigeer naar uw GitHub-opslagplaats.

Ga naar Instellingen > Geheimen en variabelen -> Acties -> Nieuw repositorygeheim.

Stap 3: Maak de GitHub-actieworkflow

Maak in de repository een map “.github/workflows”. Maak in deze map een YAML-bestand voor uw workflow.

Voeg de workflow als volgt toe:

naam: Voer Ansible Playbook uit
op:
duw:
takken:
- meester
banen:
aanwenden:
draait op: ubuntu-nieuwste
stappen:
- naam: Afrekencode
gebruikt: actions/checkout@v2
- naam: SSH-sleutel instellen
uitvoeren: |
echo '${{ geheimen.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 private_key.pem
- naam: Voer Ansible Playbook uit
uitvoeren: |
sudo apt-update
sudo apt install -y ansible
ansible-playbook -i hosts.ini mijn-playbook.yml --private-key=private_key.pem --user=${{ geheimen.REMOTE_USER }}

Stap 4: Activeer de workflow

Elke keer dat je naar de master branch pusht, zal GitHub deze workflow automatisch uitvoeren en dus het playbook uitvoeren.

Conclusie

Dat is het voor deze. We hebben besproken hoe u een Ansible-playbook kunt uitvoeren met behulp van de Github-acties.