Hem Företag Så här kommer du igång med Ansible

Så här kommer du igång med Ansible

by Gästförfattare

Ansible är ett utmärkt sätt att massdistribuera ändringar på flera maskiner. Till exempel har jag använt den för att göra några grundläggande inställningar på en ny maskin och för att uppdatera flera värdar samtidigt. Det är också viktigt att tänka på att Ansible inte bara används i homelab-miljöer, utan det är också väldigt populärt i företagsmiljöer, vilket gör det till en mycket värdefull färdighet att ha.

Ansible är ett utmärkt sätt att massdistribuera ändringar på flera maskiner. Till exempel har jag använt den för att göra några grundläggande inställningar på en ny maskin och för att uppdatera flera värdar samtidigt. Det är också viktigt att tänka på att Ansible inte bara används i homelab-miljöer, utan det är också väldigt populärt i företagsmiljöer, vilket gör det till en mycket värdefull färdighet att ha.

Konfigurera Ansible på en ny maskin

Först måste vi installera "ansible"-paketet, det bör vara så enkelt som:

`sudo apt update && sudo apt install ansible`

Och vi måste skapa vår Ansible-katalog för att arbeta utifrån:

`mkdir ~/ansible && cd ~/ansible`

Du bör nu vara i Ansible-katalogen på din lokala dator.

Ansible Översikt

Vi använder de två huvudfunktionerna i Ansible, inventeringar, som lagrar alla dina värdar, och spelböcker, som innehåller "instruktioner" för att köra på värdarna. För att Ansible ska kunna läsa vår spelbok och utföra åtgärderna måste den veta var värdarna är, det är vad inventeringsfilen är. Det är bara en "inventering" av alla värdar.

Nu har vi själva lekböckerna, när Ansible har läst inventeringen och är medveten om alla värdar börjar den leta efter vad den ska göra. Det är spelboken, som bara är en enkel YAML-fil, som använder "moduler" för att utföra uppgifterna. Dokumentation om nämnda moduler finns på Ansible hemsida. Om det är något som inte är klart, detta [nybörjare Ansible video] av NetworkChuck gör ett bra jobb med att förklara saker.

Skapa vår Ansible Inventory

Nu när vi har en grundläggande förståelse för Ansible och hur det fungerar, kan vi skapa vårt lager. Formatet kan antingen vara i YAML eller INI, för att göra det enkelt kommer vi att använda INI och bara lägga till en värd.

Här är en exempelfil:

inventory.ini:
"'ini
[kraftfull]
192.168.1.78
”'

Döp det till `inventory.ini` i din `ansible`-katalog. Den här filen skapar en "grupp" av "kraftfulla" med en enda värd av "192.168.1.78". Vi kan använda detta i våra spelböcker senare. Du kan ge det vilket gruppnamn och IP du vill, beroende på din inställning. Du kan också lägga till fler värdar till gruppen om det behövs.

Distribuera Ansible Playbooks

Först vill vi verifiera att Ansible fungerar:

Tänk på att vår offentliga ssh-nyckel måste finnas i filen authorized_keys på den värd som vi försöker nå. Om inte, kommer detta kommando att misslyckas. Vi använder gruppen "kraftfull", men använd vad du än kallade ditt.

`ansible -i ./inventory.ini -m ping -u administratör kraftfull`

Om det fungerar kan vi tillhandahålla våra spelböcker på den noden.

Handboken vi distribuerar uppdaterar helt enkelt systemet, startar om det och väntar sedan på att det ska komma tillbaka online. Om du har flera noder i gruppen, kommer den att gå igenom varje nod en efter en och väntar på att den föregående ska komma tillbaka online innan den startar om nästa. Detta ger tjänsterna på noden tillräckligt med tid att stänga av och migrera om du använder något liknande Hamnarsvärm.

update.yml:
“Yaml
– namn: Uppgradera alla noder och starta om
samla_fakta: nej
värdar: "{{ variable_hosts }}"
bli: ja
serie: 1

uppgifter:
– namn: Uppdatering och uppgradering | {{ inventory_hostname }}
benägen:
# tvinga bakåtkompatibilitet
force_apt_get: ja
update_cache: ja
uppgradering: 'ja'

– namn: Starta om | {{ inventory_hostname }}
starta om:
# hur länge den väntar på att noden kommer tillbaka online efter omstart
reboot_timeout: 300
# hur länge man ska vänta med att starta om efter att föregående uppgift (apt) är klar
pre_reboot_delay: 60

– namn: Ping | {{ inventory_hostname }}
pinga:

– namn: Paus | {{ inventory_hostname }}
paus:
minuter: 5
”'

`ansible-playbook -i ./inventory.ini -e variable_hosts=kraftig -u administratör -K ./update.yml`

![Bild av Playbook Executing](./002-ansible-playbook-executed.png)

Förklaring av flaggorna:
– -i: Ange inventeringsfilen.
– -e: Vi måste ange värden, i spelboken har vi en variabel `variable_hosts`, vilket är vad som skickas till spelboken.
– -u: Detta är användaren som används för att köra kommandon på värden.
– -K: Detta säger till playbook att fråga användaren om sudo-lösenordet, annars kommer spelboken att misslyckas.

Utgående Tankar

Ansible är ett otroligt kraftfullt och mångsidigt verktyg som kan användas till en mängd olika saker. Vi skrapade knappt på ytan med den här artikeln, men du bör fortsätta att experimentera och automatisera uppgifter för att lära dig mer om det. Oavsett om det är att automatisera Kubernetes-distributioner eller bara uppdatera dina system som vi gjorde idag.

Ansible webbplats

-Ethan Edwards

Engagera dig med StorageReview

Nyhetsbrev | Youtube | LinkedIn | Instagram | Twitter | Facebook | TikTokRssflöde