Den støtter to metoder for å administrere eksterne maskiner: ad hoc -kommandoer og Ansible Playbooks. Ad hoc -kommandoer er rå kommandoer som du kan utføre i terminalen for å utføre en oppgave i en enkelt tilfelle.
Ansible playbooks er derimot filer skrevet på YAML -språket. De inneholder et enkelt eller et sett med oppgaver utført på den eksterne maskinen. På grunn av den strenge naturen til YAML, krever Ansible Playbooks nøye oppmerksomhet i den generelle syntaksen.
Denne opplæringen vil lede deg gjennom det grunnleggende om å skrive Ansible Playbooks og utføre kommandoer på eksterne maskiner. For illustrasjonene i denne guiden vil vi sette opp en enkel spillbok som installerer og konfigurerer Apache Webserver.
MERK: Denne opplæringen har ikke hensikt å lære deg Ansible. Alt det gjør er å gi deg tips og retningslinjer for å skrive en Ansible Playbook.
Forutsetninger
For å få maksimal verdi ut av denne guiden, anbefaler vi å følge med. Følgende er ting du trenger.
Når du har begge ovennevnte krav oppfylt, kan vi begynne.
Hvordan installere Ansible på Debian/Ubuntu
Det aller første trinnet er å sikre at vi har Ansible installert og kjører på vår lokale maskin. Jeg vil bruke Ubuntu til denne opplæringen.
Trinn 1
Begynn med å oppdatere systemet ditt ved å bruke kommandoene nedenfor:
Steg 2
Bruk deretter kommandoene nedenfor for å installere Ansible på Ubuntu.
Nå som vi har installert den på din lokale maskin, kan vi fortsette å konfigurere den.
Hvordan sette opp Ansible Inventory
For å administrere de eksterne serverne som bruker Ansible, må du fortelle om det. Vi gjør dette ved å lage en varelagerfil som inneholder IP -adresser eller vertsnavn på de eksterne maskinene.
Som standard er vertsbeholdningsfilen i/etc/Ansible/verter.
For å lære hvordan du kan opprette en tilpasset vertsbeholdningsfil i Ansible, bør du vurdere en av opplæringsprogrammene våre.
Rediger filen/etc/Ansible/Hosts og legg til IP -adressen til den eksterne maskinen som vist nedenfor:
I eksempelbeholdningen ovenfor oppretter vi en gruppe servere (Linuxhint) som vi vil administrere i denne opplæringen. Du kan ha andre grupper som webservere, database_server osv.
Hvordan sette opp SSH -nøkkelpar
Ansible bruker SSH for å logge inn i de spesifiserte eksterne maskinene og utfører oppgavene som er definert i lekeboken. For å minimere interaksjonen og lage en helautomatisk arbeidsflyt, er det best å lage et SSH -par for å logge inn på den eksterne maskinen.
Trinn 1
Det første trinnet er å generere et SSH-nøkkelpar bruker SSH-KeyGen-verktøyet. Bruk kommandoen som:
Dette vil interaktivt be deg om å generere et SSH -nøkkelpar. For enkelhets skyld, godta standardverdiene og ikke legg til en passordfrase.
Utgangen for det er nedenfor:
Steg 2
Deretter må vi kopiere SSH-tasten til de eksterne maskinene ved hjelp av SSH-Copy-ID-verktøyet. Bruk kommandoen som:
Utgangen er som vist nedenfor:
For å lære mer om hvordan du bruker SSH-Copy-ID-kommandoen, bruk dette: Bruk SSH Copy ID-kommando.
Hvordan skrive en Ansible Playbook
Som jeg nevnte tidligere, bruker Ansible Playbooks YAML, og derfor må du observere strenge syntaktiske konvensjoner.
Hvis du ikke er kjent med hvordan du skriver YAML -filer, bør du vurdere opplæringen i denne lenken: Les YAML -filverdier
For å holde oss organisert, la oss lage en katalog der vi skal lagre alle spillbøkene våre.
CD ~Nå som vi har opprettet katalogen, la oss opprette vår første Ansible Playbook (filen skal ende med .YAML -forlengelse.
VIM -test.YamlInne i YAML -filen, legg til følgende innhold.
---Lagre filen og kjør den på serveren ved å bruke kommandoen:
Ansible-Playbook Test.YamlKommandoen vil sende ut informasjonen om nettverksgrensesnittene på de eksterne maskinene som vist på bildet nedenfor:
Selv om utgangen ikke er pen og ikke gir den mest effektive måten å samle nettverksinformasjon ved hjelp av Ansible, illustrerer den passende hvordan vi kan bruke Ansible til å kjøre kommandoer på eksterne verter.
Hvordan registrere variabler i Ansible Playbooks
For å lage en variabel i en Ansible Playbook, bruker vi registeret nøkkelord etterfulgt av variabelenes navn. Du kan også bruke variabelenes navn som nøkkelen og angi verdien ved å bruke tykktarmsnotasjonen.
For eksempel to måter å registrere en variabel i Ansible.
Register: Variabel1Med den definerte variabelen bruker du det ved å kalle navnet i et sett med to krøllete seler som:
'Ringer variabelen variabel1 inne i en streng'Privilegium opptrapping i Ansible
Ansible lar deg også oppgradere privilegiene til en bruker som bruker det. GE -metoden er en boolsk verdi som spesifiserer at oppgavene i spillboken skal kjøres som rot.
I vår første spillbok satte vi ER til True og satte metoden for opptrapping av privilegier som sudo.
Apt Inside Playbooks
Ansible gir oss måter å administrere passende pakker i Debian -baserte system. Ved hjelp av denne metoden kan du oppdatere, installere og avinstallere pakkene ved hjelp av Ansible Playbook.
Tenk på oppdateringen.YAML -fil vist nedenfor:
---Ovennevnte spillbøker oppdaterer depotbufferen. Dette tilsvarer en rå kommando som:
Sudo apt-get oppdateringDet kan være utrolig nyttig når du installerer programvare som Apache, Nginx osv., på en ekstern vert.
Eksempel Bruk sak
Denne delen vil opprette en spillbok som installerer en Apache -webserver på Debian -systemet og utfører grunnleggende konfigurasjon.
Denne spillboken viser forskjellige bevegelige stykker av Ansible og vil gi et godt eksempel på hvordan Ansible Playbooks fungerer.
Begynn med å opprette YAML -filen.
vim config_apache.YamlInne i Yaml, skriv inn følgende spillbok.
---Lagre filen og kjør den på den eksterne serveren ved å bruke kommandoen:
Ansible-Playbook --User = "Ubuntu" config_apache.YamlVed vellykket utførelse vil du se på utdata som vist.
Bekreft at serveren kjører ved hjelp av Curl som:
Curl 192.168.0.1. 3Du bør få standard Apache -kildekode (utdrag vist nedenfor).
Og med det har vi konkludert med denne opplæringen.
Konklusjon
Det er godt å merke seg at funksjonaliteten i å skrive spillbøker vil sterkt avhenge av oppgavene du trenger å utføre. Imidlertid håper jeg denne opplæringen ga deg noen få retningslinjer og tips for å lage en av dine egne.
Glad automatisering!