Hur man installerar och konfigurerar Ansible på Ubuntu 20.04

By rik

Ansible är ett flexibelt och användarvänligt verktyg för att automatisera systemadministration och serverkonfiguration. Det fungerar utan behov av agenter, vilket innebär att ingen programvara behöver installeras på de servrar som ska hanteras. Istället använder Ansible SSH för att kommunicera med målservrarna och utföra uppgifter.

Denna handledning guidar dig genom installationen och konfigurationen av Ansible på en Ubuntu 20.04-server. Vi kommer att behandla installationsprocessen, konfigurera din inventeringsfil och skapa din första playbook.

En introduktion till Ansible

Ansible är en öppen källkodslösning för automation, som används för att automatisera åtgärder med hjälp av skript kallade ”playbooks”. Verktyget är utformat för att vara lättanvänt och lärt sig snabbt, med förmågan att automatisera en mängd olika uppgifter, inklusive:

  • Serverkonfiguration: Skapa nya servrar, installera operativsystem och mjukvara.
  • Konfigurationshantering: Säkerställ enhetliga serverinställningar.
  • Applikationsdistribution: Installera och konfigurera programvara på flera servrar.
  • Övervakning och problemlösning: Samla in systeminformation och identifiera problem.

Fördelarna med att använda Ansible innefattar:

  • Agentfritt: Ansible kräver ingen installation på de servrar som ska administreras.
  • Enkelhet: Ansible har en lättförståelig syntax och är enkelt att lära sig.
  • Idempotens: Playbooks kan köras flera gånger utan negativa effekter.
  • Skalbarhet: Ansible kan användas för att hantera allt från några till tusentals servrar.

Steg för att installera Ansible på Ubuntu 20.04

1. Uppdatera systemet: Börja med att uppdatera ditt Ubuntu-system genom att köra följande kommando:

sudo apt update && sudo apt upgrade -y

2. Installera Ansible: Installera Ansible med detta kommando:

sudo apt install ansible -y

3. Verifiera installationen: Kontrollera att Ansible är korrekt installerat genom att köra kommandot ansible --version. Detta visar Ansible-versionen och annan viktig information.

Konfigurera din inventeringsfil

En inventeringsfil definierar de servrar som Ansible ska hantera. Ansible använder som standard filen hosts som finns i ~/.ansible/hosts. Vi skapar en enkel inventeringsfil som inkluderar vår lokala maskin:


[localhost]
localhost ansible_connection=local

[webservers]
192.168.1.100
192.168.1.101

I detta exempel har vi skapat två grupper: localhost och webservers. Gruppen localhost innehåller enbart den lokala maskinen och använder ansible_connection=local för att signalera att Ansible ansluter direkt till den lokala maskinen. Gruppen webservers innehåller två server-IP-adresser.

Skapa din första playbook

En playbook är en fil som innehåller instruktioner till Ansible om vilka uppgifter som ska utföras. En enkel playbook kan se ut som följer:


---
- hosts: localhost
  tasks:
    - name: Installera Nginx
      apt:
        name: nginx
        state: present

    - name: Starta Nginx
      service:
        name: nginx
        state: started
        enabled: true

Den här playbooken instruerar Ansible att installera och starta Nginx på den lokala datorn. Den använder sig av två åtgärder (tasks):

  • apt-åtgärden: Installerar Nginx-paketet via apt-modulen.
  • service-åtgärden: Startar och aktiverar Nginx-tjänsten.

Köra en playbook

Du kan köra en playbook med kommandot:

ansible-playbook name_of_playbook.yaml

Ersätt name_of_playbook.yaml med namnet på din playbook-fil.

Avslutning

Ansible är ett kraftfullt och användarvänligt verktyg för att automatisera systemadministration och serverhantering. Med sin agentfria konstruktion, enkla syntax och förmåga att administrera hundratals eller till och med tusentals servrar, är Ansible ett utmärkt val för att automatisera dina systemhanteringsprocesser.

Genom att följa stegen i denna guide har du nu installerat och konfigurerat Ansible på Ubuntu 20.04. Du kan nu börja skapa playbooks för att automatisera din serverhantering och spara tid och ansträngning.

Vanliga Frågor

1. Vilka är de vanligaste användningsområdena för Ansible? Ansible används ofta för att automatisera processer såsom serverkonfiguration, konfigurationshantering, applikationsdistribution, övervakning och felsökning.
2. Måste jag installera Ansible på de servrar som jag vill hantera? Nej, Ansible är agentfritt. Du behöver inte installera någon mjukvara på de servrar du avser att administrera.
3. Vilka är de viktigaste komponenterna i en Ansible-playbook? En playbook innehåller vanligtvis ”hosts”, ”tasks” och ”vars”. ”Hosts” definierar de servrar som playbooken ska köras på, ”tasks” definierar de uppgifter som ska genomföras, och ”vars” definierar variabler som kan användas inom playbooken.
4. Hur skapar jag en inventeringsfil för Ansible? Du kan skapa en inventeringsfil med en textredigerare och spara den som hosts. Filen ska lista de servrar du vill hantera tillsammans med deras IP-adresser eller värdnamn.
5. Hur kör jag en playbook mot en specifik servergrupp? Använd flaggan -l för att ange den servergrupp som du vill rikta playbooken mot. Exempel: ansible-playbook name_of_playbook.yaml -l webservers.
6. Hur använder jag variabler i en playbook? Du kan definiera variabler i en playbook-fil genom sektionen vars. Dessa variabler kan sedan användas i andra delar av playbooken.
7. Hur felsöker jag en playbook? Ansible tillhandahåller loggfunktioner som kan hjälpa dig att lösa problem. Aktivera loggning med flaggan -vvv när du kör en playbook.
8. Hur använder jag Ansible med Git? Du kan använda Git för att spåra ändringar i dina playbooks och dela dem med andra. Git kan användas för att centralisera och hantera din Ansible-kodbas.
9. Hur automatiserar jag Ansible med CI/CD? Ansible kan enkelt integreras med CI/CD-plattformar som Jenkins, GitLab CI och Azure DevOps för att automatisera din serverkonfiguration och applikationsdistribution.
10. Var kan jag hitta mer information om Ansible? Du hittar mer information på den officiella webbplatsen: https://www.ansible.com/.

Taggar: Ansible, Ubuntu 20.04, Automatiserad systemhantering, Serverprovisionering, Konfigurationshantering, Playbooks, Inventeringsfil, SSH, Agentlös