Oppdage Ansible Hosts -filen (2024)

TwitterFacebookLinkedIn

Som systemadministrator kan du ha kommet over en situasjon der du trenger å administrere flere servere.Denne situasjonen kan være skremmende med mindre du vurderer å oppdage Ansible Hosts -filen.Ansible Hosts -fil eller inventar er en viktig fil som forteller Ansible om vertene å administrere.

Ansible Hosts -fil hjelper deg å automatisere alle disse oppgavene.Og i denne opplæringen lærer du hvordan du setter opp ansatte varelager fra bunnen av.

Les videre og vær aldri redd for å administrere flere servere samtidig!

Forutsetninger

Denne opplæringen vil være en praktisk demonstrasjon. Hvis du vil følge med, sørg for at du har følgende.

  • Ansible kontrollnoder, som kan være din lokale maskin - denne opplæringen bruker Ubuntu 20.04 og AWS EC2 -forekomster.

I slekt:Hvordan installere Ubuntu 20.04 [trinn-for-trinn]

  • Noen få servere som Ansible kan administrere (Ansible verter) - denne opplæringen bruker Ubuntu og AWS EC2 vertsnoder.SSH -nøklerog en brukerkonto som har tilgang til hver node medsudoprivilegier er påkrevd.
  • AnsibleogPythonInstallert på alle nodene (kontrollnoder og vertsnoder).Ansible moduler og kommandoer krever Python -biblioteker.

I slekt:Guide: Hvordan oppsett Ansible (Ubuntu, RHEL, Centos, MacOS)

Sette opp en tilpasset varelagerfil

Nå som du har alle forutsetningene på plass, er det på tide å begynne å konfigurere Ansible ved å sette opp en tilpasset varelagerfil.Men først må du sjekke om både Ansible og Python er riktig installert.

1. Kjør kommandoen nedenfor for å bekrefte Ansible og Python -versjoner installert på hver node.

Ansible -Versjon Python3 -Versjon

Du vil se Ansible og Python -versjonsnumrene, som vist nedenfor.

Discovering the Ansible Hosts File (1)

2. Åpne standardverterfil (/etc/ansible/verter) Bruke din favoritt tekstredigeringsprogram for å se hva en ansibleverterfilen ser ut som.

Som standard ser Ansible etter vertene i/etc/ansible/verterfil.Standard lagerfil inneholder forskjellige eksempler du kan bruke som referanser mens du setter opp varelageret ditt.

Nedenfor kan du severterFilens innhold er delt inn i mange seksjoner med eksempler:

  • De[webservere]Seksjonen er kommentert, og det er her du erklærer vertene som vil bli brukt som webservere.
  • De[DBSERVERS]Seksjonen er også kommentert, der du erklærer verter som vil bli brukt som databaseservere og så videre.

Beslagene [] brukes til å gruppere verter sammen for å bli målrettet som en gruppe i spillbøker.

I slekt:Hvordan bygge (og faktisk forstå) en solid Ansible Playbook

Du kan sette ett vertsnavn eller IP -adresse i hver gruppe.For eksempel kan en server være både en webserver og en dbserver.Legg merke til at Ansiblevariablerkommer fra alle gruppene de er medlemmer av.

Discovering the Ansible Hosts File (2)

Avhengig av dine behov, kan du ha så mange grupper du vil i varelagerfilen.For eksempel, hvis du administrerer en omfattende infrastruktur, kan det hende du trenger forskjellige grupper for hvert miljø, for eksempel dev, test og produksjon.

3. Kjør kommandoen nedenfor for å opprette en ny katalog (MKDIR) som heter Ansible i din hjemmekatalog.DeAnsibleKatalog lagrer alle filene relatert til Ansible -prosjektet ditt.

CD && mkdir Ansible

Du kan bruke standardbeholdningsfilen uten problemer.Men å ha din tilpassede varelagerfil for hvert prosjekt du jobber med er god praksis.Hvordan?For det første hjelper du å bruke en spillbok på feil gruppe av servere å bruke per-Project Inventory Files.For det andre kan du dele lagerfilen din med andre som bruker Ansible.

4. Kjør nå kommandoene nedenfor for å flytte inn i den nyopprettede katalogen (mulig), opprette og åpne en ny lagerfil som heter Inventory.

CD Ansible && Nano Inventory

5. Legg til dine ansible verter som er ugruppert inne i varelagerfilen, lagre endringene og lukk filen.Merk at bare en oppføring per linje er tillatt, som vist nedenfor.

Hvis du legger mer enn en vert på samme linje, vil de bli betraktet som en vert.Som et resultat får du en feil når du prøver å kjøre spillboken.

På dette tidspunktet har du en grunnleggende, men funksjonell ansettbar inventarfil.

Discovering the Ansible Hosts File (3)

6. Til slu*tt, kjør nedenforAnsible-InventoryKommando for å –Liste alle vertene og gruppene i varelagerfilen din (-i varelager).

Du må bruke -i -alternativet, ellers vil Ansible se etter standardvertenes fil i stedet.

Ansible -Inventory -I Inventory -List

Selv om du bare har tre ugrupperte servere som er oppført i varelagerfilen, gir Ansible automatisk to forskjellige grupper, som følger:

  • alle– Inneholder alle serverne fra inventarfilen din, uansett hvordan de er organisert.
  • ugruppert- Inneholder alle serverne som ikke tilhører noen gruppe.
Discovering the Ansible Hosts File (4)

Testing avTilpasset varelagerfil

Nå som du har en tilpasset varelagerfil, må du fortelle Ansible å bruke den filen i spillbøkene dine.Men først, sørg for å teste tilkoblingen mellom din Ansible Control Server og vertene i varelagerfilen.

Kjør kommandoen nedenfor tilping alleservere i varelagerfilen din (-Jeg varelager) fra din Ansible Control Server.

Ansible -Jeg varelager alle -m ping

Denne kommandoen tester over -kontrollservere, vertene i tilkoblingen til lagerfilen din, og gir utdata som følger:

  • SUKSESS -Bekrefter at du kan nå alle servere som er oppført i varelagerfilen din fra Ansible Control Server.
  • “Discovered_Interpreter_python”- Python -tolken som brukes på de eksterne serverne.I dette tilfellet, Python 3.
  • endret“:falsk -Indikerer at Ping -modulen ikke gjorde noen endringer på serverne dine.DepingModul er en av få moduler som ikke gjør noen endringer på serverne dine, men som bare returnerer informasjon.
  • ping": "Pong“: Denne linjen indikerer at pingmodulen ble utført med hell.Kontrollnoden din sender en ping -forespørsel til alle servere som er oppført i varelagerfilen, og alle servere svarer Pong.
Discovering the Ansible Hosts File (5)

Kjør nå følgende kommando for å bekrefte tilkoblingen til en spesifikk server.Erstatte159.65.197.8med det faktiske navnet på den eksterne serveren din.

Ansible -i Inventory 159.65.197.8 -m ping

Utgangen nedenfor verifiserer tilkobling til en server med IP -adressen159.65.197.8er enSUKSESS.

Discovering the Ansible Hosts File (6)

Organisere servere i grupper

Du har nettopp opprettet en grunnleggende varelagerfil med ugrupperte verter, og den fungerer.Så hvorfor gruppere serverne dine?Når du organiserer serverne dine i grupper, blir de mer håndterbare.Samtidig kan du bruke et sett med konfigurasjoner eller kjøre en spillbok på en bestemt gruppe servere i stedet for å kjøre den på alle servere.

Å organisere serverne dine i sine respektive grupper:

1. Åpne din skikkinventarfil i en tekstredigerer.

2. Legg serverne dine i gruppene sine, som vist nedenfor.Denne opplæringen organiserer servere i tre grupper (Webserver, DBSERVERS og Production), som vist nedenfor.

Lagre og lukk inventarfilen når du er ferdig.

Discovering the Ansible Hosts File (7)

3. Kjør nå kommandoen nedenfor for å-liste alle verter og grupper i varelagerfilen din (-i varelager).

Ansible -Inventory -I Inventory -List

Utgangen nedenfor viser at serverne er gruppert i webservere, DBSERVERS og produksjon.Legg merke til at alle servere fremdeles tilhører alle gruppe, og alle servere som ikke tilhører noen grupper er plassert i den ugrupperte gruppen.

På dette tidspunktet har du allerede en grunnleggende varelagerfil med noen få servere organisert i grupper.

Discovering the Ansible Hosts File (8)

4. Kjør følgende APT -kommando for å installere Nginx -pakken på alle servere i WebServer -gruppen.Ansible har en innebygd APT-modul (Ansible.Builtin.APT) Du kan bruke til å installere pakker på de eksterne Ubuntu-serverne.

Ansible -i Inventory -M Ansible.Builtin.APT -A "Navn = Nginx State = Present" WebServers
Discovering the Ansible Hosts File (9)

I slekt:Lære ubuntu apt komme gjennom eksempler

5. Til slu*tt kan du kjøre kommandoen nedenfor for å bekrefte statusen til Nginx -tjenesten som den kjører på alle servere i WebServer -gruppen.

Ansible -i Inventory -M Shell -a "SystemCTL Status Nginx" WebServers

Utgangen nedenfor indikerer at Nginx -tjenesten kjører på alle servere i WebServer -gruppen og er nå klare til å betjene netttrafikk!

Tilsvarende kan du utføre andre oppgaver som ikke er begrenset til de nedenfor:

  • Installer MariaDB -pakken på alle servere idbserveregruppe.
  • Bruk et sett med konfigurasjoner på alle servere i produksjonsgruppen.
Discovering the Ansible Hosts File (10)

I slekt:Riktig måte å bruke Ubuntu SystemCTL for å kontrollere SystemD

Arbeider med dynamisk inventar

Så langt har du jobbet med Ansible Playbooks og statiske og tilpassede varelagerfiler.Men i den virkelige verden vil du jobbe med skymiljøer, som AWS, Google Cloud, Azure og så videre.Disse plattformene har egne API -er for å administrere infrastruktur og tjenester.

Det kan hende du må skalere servere inn og ut ofte, der en statisk varelagerfil ikke vil fungere bra.Infrastrukturer endres kontinuerlig, og du må oppdatere varelagerfilen ofte.

Heldigvis gir Ansible en måte å jobbe med skymiljøer og ekstern varelager kalt Dynamic Inventory.Og i denne opplæringen vil du berøre de grunnleggende konseptene for dynamisk inventar i en kort demo for AWS.

1. Kjør kommandoen nedenfor for å installere BOTO3 -biblioteket.Ansible bruker dette biblioteket for å spørre om informasjon om verter i AWS EC2.

PIP3 installer BOTO3
Discovering the Ansible Hosts File (11)

2. Kjør deretter kommandoen nedenfor for å opprette en ny katalog (MKDIR) kalt/opt/Ansible/Inventory og navigere til den katalogen (CD).

mkdir -p/opt/ansible/inventar && cd/opt/antible/beholdning

3. Konfigurer AWS EC2 Dynamic Inventory med følgende:

  • Opprett en ny fil som heteraws_ec2.yamlI tekstredigereren din, og fyller filen med innholdet nedenfor.Deaws_ec2.yamlFilen er konfigurasjonsfilen for AWS EC2 Dynamic Inventory.
  • Bytt ut og med din egen AWS-tilgang og hemmelige nøkkel.
  • Spar og lukkaws_ec2.yamlfil.
--- Plugin: AWS_EC2AWS_ACCESS_KEY:  AWS_SECRET_KEY:  Keyed_Groups:-Nøkkel: Tagger Prefiks: Tag

Merk at du må inkludere - i begynnelsen av filen for YAML -syntaks.Dette symbolet er ikke en skrivefeil, men er nødvendig for at Ansible skal analysere filen riktig.

4. Åpne /etc/ansible/ansible.cfgFil i en tekstredigerer og aktiver AWS_EC2 Inventory -plugin med følgende:

  • UkommentarEnable_pluginsdirektiv ved å fjerne#symbol i begynnelsen.Dette direktivet muliggjør AWS_EC2 Inventory -plugin.Ansible bruker denne pluginen for å samhandle med AWS EC2.
  • Angi enable_plugins -direktivets verdi til AWS_EC2, som vist nedenfor.
  • Lagre endringene og lukkAnsible.cfgfil.

Du har nå vellykket konfigurert Ansible til å bruke AWS EC2 Dynamic Inventory.

Discovering the Ansible Hosts File (12)

5. Kjør til slu*tt kommandoen nedenfor for å bekrefte at Ansible kan koble seg til AWS og trekke informasjon om vertene.

Ansible -Inventory -I AWS_EC2.YAML --Graph

I utdataene nedenfor trakk Ansible informasjon om de to vertene i AWS EC2 -kontoen din.Hver gang du avslu*tter eller oppretter en forekomst i AWS, oppdateres inventaret automatisk.

Grupp serverne etter region eller andre kriterier (DBServer, WebServers…).Du kan deretter installere programvare på de serverne ved hjelp av Ansible Playbooks.

For eksempel kan det være lurt å gruppere serverne av webservere og installere NGINX på alle serverne i den gruppen akkurat som du ville gjort for en statisk varelager.

Discovering the Ansible Hosts File (13)

Sikre sensitive data i varelagerfilen

Som du har lagt merke til, varelagerfilen (aws_ec2.yaml) Inneholder sensitive data, for eksempel AWS Access -tasten og den hemmelige nøkkelen.Å lagre disse tastene i klar tekst i varelagerfilen er risikabelt.Heldigvis gir Ansible deg en måte å kryptere varelagerfilene dine ved hjelp av Ansible-hvelv.

For å kryptere inventarfilene dine, må du først angi$ RedaktørVariable verdi i skallet ditt.Denne variabelen forteller Ansible hvilken tekstredigerer (dvs. Nano, Vim ...) som skal brukes når du redigerer en fil ved hjelp av Ansible-Vault.

1. Åpne~/.bashrcfil i redaktøren din og legg til eksportredigereren = Nano -linjen til slu*tten av~/.bashrcfil.Sørg for å erstatte Nano med din foretrukne tekstredigerer, lagre endringene og lukk redaktøren.

De~/.bashrcFil er et skallskript som Bash kjører når Bash Shell starter opp.Denne filen er der du angir miljøvariabler, start bakgrunnsprosesser og angir gjeldende brukers alias.

Discovering the Ansible Hosts File (14)

2. Kjør deretter følgende kommandoer for å skaffe skriptet, bruke endringene og bekrefte at redigeringsvariabelen er satt riktig.

# Kilde skriptet, og bruk endringene.~/.bashrc# Skriv ut $ redigeringsvariabelen Valueecho $ Editor

Du vil se navnet på tekstredigereren din som er skrevet ut på terminalen, som vist nedenfor.

Discovering the Ansible Hosts File (15)

3. Kjør ANSIBLE-VAULT CREATE-kommandoen nedenfor for å opprette en ny kryptert varelagerfil for å lagre AWS Access-tasten og den hemmelige tasten.Du kan navngi filen som du vil, men filen heter Encrypted_Inventory i denne opplæringen.

Ansible-Vault Create Encrypted_Inventory

Du blir bedt om å angi og bekrefte et passord for å kryptere og dekrypterekryptert_inventoryfil.

En nykryptert_inventoryFilen vil bli opprettet og åpnet automatisk i standard redigeringsprogrammet (Nano), mens du angir i $ redigeringsvariabelen.

Passordet skal være mer enn åtte tegn, en blanding av store bokstaver og små bokstaver, og minst ett tall eller spesiell tegn.

Discovering the Ansible Hosts File (16)

4. Legg til varelagerdataene ikryptert_inventoryFil, lagre og lukk filen når du er fornøyd med endringene.

På dette tidspunktet har du opprettet en kryptert varelagerfil som kan brukes med Ansible-Playbook-kommandoen.

Discovering the Ansible Hosts File (17)

5. Kjør CAT -kommandoen nedenfor for å bekrefte at filen er kryptert.

CAT -kryptert inventar.yaml

Du vil se en utgang som ligner på den nedenfor hviskryptert_inventoryFilen er kryptert.$ Ansible_Vault; 1.1; AES256 -strengen indikerer at filen er kryptert ved hjelp av Ansible Vault med AES256 -chifferen.

De krypterte dataene er den tilfeldige strengen med tegn under $ Ansible_Vault -strengen.Ingen kan lese AWS -tilgang og hemmelige nøkler uten riktig passord.

Discovering the Ansible Hosts File (18)

6. Til slu*tt, kjør Ansible-hvelv-kommandoen for å dekryptere og se innholdet ikryptert_ inventar.yamlfil.

Oppgi passordet du angir for å kryptere og dekryptere filen i trinn tre.

Ansible-Vault View Encrypted_Inventory.yml

Som du kan se nedenfor, dekrypterer Ansiblekryptert_ inventar.yamlfil og viser innholdet etter å ha bekreftet passordet.

Discovering the Ansible Hosts File (19)

Konklusjon

Denne opplæringen gikk deg gjennom å konfigurere og konfigurere ansettede varelager på Ubuntu 20.04 -serveren.Du har opprettet en tilpasset Ansible Inventory File/Ansible Hosts -fil og organiserte servere i grupper.Du kan nå effektivt administrere flere servere, som å installere pakker på alle servere i en gruppe samtidig.

På dette tidspunktet kan du begynne å bruke AnsibleverterFil for å automatisere serverkonfigurasjons- og administrasjonsoppgavene.

Det er mye mer å lære om Ansible.Hvorfor ikke begynne å lære åTilordne en varelager -alias til en variabel?Det er på tide å gjøre spillbøkene dine mer lesbare og enklere å vedlikeholde.

Oppdage Ansible Hosts -filen (2024)

References

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6682

Rating: 4.2 / 5 (63 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.