I denne opplæringen skal vi lære om en av de viktige modulene til Ansible som er autorisert_key. Vi lærer hvordan vi overfører SSH -dekrypteringstasten som er lagret i varelagerfilen til de eksterne vertene i Ansible.
For å utføre oppgavene i Ansible Playbook på fjerne eksterne vertsenheter, må vi enten fjerne legitimasjon fra SSH -tilkoblingen til den eksterne verten, eller vi kan levere legitimasjon og nøkler for å autentisere når spillboken blir utført. I Ansible har vi to forskjellige nøkler som er den offentlige nøkkelen og den private nøkkelen kjent som SSH -nøkkelparet. For å etablere en forbindelse med Target Remote -vertene, må vi bytte vår offentlige SSH -nøkkel med dem mens vi holder den private SSH -nøkkelen på lokale maskiner. OpenSSH er standard tilkoblingsmekanisme i Ansible -verktøyet. Ansible antar at vi kobler til målet for fjerntliggende verter ved hjelp av SSH -nøklene.
Ulike trinn med SSH -tilkobling ved bruk av tastene i Ansible
Følgende er trinnene vi skal bruke for å bygge SSH -forbindelsen mellom Ansible -kontrolleren og de eksterne vertene ved å bruke den offentlige nøkkelen og den private nøkkelen:
Trinn 1: Lag et nøkkelpar ved å generere de private og de offentlige nøklene med de respektive navnene, ID, RSA og PUB.
Steg 2: Hvis vi ikke spesifiserer noe, produseres Ansible automatisk under /.SSH -mappe.
Trinn 3: Ved å lime inn puben Public Key på slutten av dokumentet /.SSH/autoriserte nøkler, du kan overføre den til fjerne eksterne verter.
Trinn 4: Koble via SSH til Target Remote Host. Bekreft deretter forespørselen om å legge til målvertenes fingeravtrykk til /.SSH/Kjente verter Dokument. Hvis du ikke overholder dette, vil programvaren be deg om å spesifisere et passord når SSH -tilkoblingen er iverksatt.
Forutsetninger for ansettelig autorisasjon_key
Vi antar at du har en Ansible Control Server med en installert Ansible på den, så vel som Target Remote -vertene for å konstruere SSH -forbindelsen mellom alle Ansible -modulene.
La oss gå inn for å avklare flere aspekter ved å implementere det enkle eksemplet på en autorisasjonsnøkkel i Ansible ved å etablere en SSH -tilkobling ved hjelp av offentlige og private nøkler.
Eksempel:
Her er det første eksemplet som vi skal implementere i Ansible ved hjelp av autorisasjon_key -modulen. For å bygge forbindelsen, trenger vi en spillbok der vi skriver vertene og oppgavene for å etablere forbindelsen mellom Ansible Control Server og Target Remote Hosts. Følgende kommando brukes til å lage spillboken i Ansible -verktøyet:
[root@master ansible]# nano autorisasjon_key_1.yml
Etter å ha skrevet den oppgitte kommandoen, opprettes og åpnes spillboken. Nå leverer vi først de eksterne vertene vi ønsker å bygge SSH -forbindelsen som er "alle" Target -fjernverter. Deretter bruker vi parameteren "Samle_facts" av Ansible Tool. Samle_fact -argumentet brukes til å kalle oppsettmodulen til Ansible. I denne situasjonen ønsker vi ikke å samle fakta, så vi gir den "falske" verdien til "Samle_facts" -argumentet fordi fakta er samlet som standard i Ansible.
Deretter viser vi oppgavene i spillboken som vi vil gjøre. Vi skriver "navnet" på oppgaven som er "samle fakta". Deretter skriver vi installasjonsmodulen og "Samle_subset" fordi vi ønsker å samle inn noe av informasjonen som er relatert til å administrere de eksterne vertene i stedet for å få all informasjon fra alle eksterne verter. Vi bruker en annen variabel av Ansible som er "Register" -variabelen som bevarer resultatene av oppgavene til lekeboken og bruker dem til påfølgende oppgaver.
Nå ønsker vi å skrive ut navnet på de eksterne vertsenhetene, så vi bruker en "navn" -variabel igjen. Deretter feilsøker vi oppgavene. Hvis oppgaven er fullført, viser den utgangen med den relaterte meldingen. Følgende er de komplette oppgavene til autorisasjon_key_1.YML Playbook:
- verter:
- alle
Samle_facts: FALSE
oppgaver:
- Navn: Samle fakta
Oppsett:
Samle_subset:
- 'alle'
Register: SAMPLE_FACT_DATA
- Navn: Skriv ut målmaskinens vertsnavn
Debug:
MSG: "STEACK_FACT_DATA.Ansible_facts.ansible_hostname "
Etter det bruker vi Ctrl+X -knappene for å avslutte spillboken. Informasjonen om den målrettede eksterne Host1 skrives deretter til inventarfilen ved å opprette filen. Vi skriver følgende kommando for å generere varelageret:
[root@master ansible]# nano host.yml
I verten.YML Inventory -fil, vi gir informasjonen til verten ved å gi den grunnleggende informasjonen som Ansible IP -adresse, brukernavn, tilkoblingsnavn, portnummeret til Ansible -verten osv.
Alle:
verter:
Vert1:
Ansible_host: 192.168.7.10
Ansible_user: Iris
Ansible_Connection: SSH
Ansible_port: 22
Lukk verten.YML Inventory File. Nå som verten.YML -filen er oppdatert, vi utfører Ansible Playbook for å sjekke om tilkoblingen er laget eller ikke. Vi skriver følgende kommando:
[root@master ansible]# ansible-playbook autorisert_key_1.yml -i vert.yml
Etter å ha utført den forrige kommandoen, får vi følgende utfall. Som du ser, får vi feilen som sier at den ikke klarte å koble seg til verten gjennom en SSH -tilkobling og er utilgjengelig. Dette fordi vi ikke ga SSH -nøkkelparet til Ansible -kontrolleren.
Vi utfører kommandoen som følger for å gi kontrolleren SSH -nøkkelparet:
[root@master ansible]# ssh -keygen -q -t rsa
Her er utgangen fra å legge inn forrige kommando:
Vi treffer bare Enter. Etter dette viser den de to rotfilene med SSH -tastene i utgangen:
Nå oppretter vi en annen spillbok for Ansible Control Server og angir SSH -tilkoblingen til kontrollerserveren. For å lage en annen spillbok, skriver vi følgende “Nano” -kommando:
[root@master ansible]# nano autorisert_key_2.yml
Etter å ha generert en annen playbook, viser vi nå vertene og bruker deretter den ansatte autoriserte modulen. I denne modulen skriver vi først vertens navn og tilstanden til brukeren. Deretter passerer vi kontrollerenhetens produserte offentlige nøkkelfil som vi nylig genererte til Target Remote Host.
- verter:
- alle
Samle_facts: FALSE
oppgaver:
- Navn: Legg til den offentlige nøkkelen til autoriserte_keys ved hjelp av Ansible -modulen
autorisert_key:
Bruker: Iris
Stat: Nåværende
Nøkkel: 'item'
med_file:
- ~/.SSH/ID_RSA.pub
Bruk følgende kommando til å kjøre autorisert_key_2.YML Playbook sammen med verten.YML Inventory -fil og den private nøkkelfilen:
[root@master ansible]# ansible-playbook autorisert_key_2.yml -i vert.YML-Private-Key /TMP /Host.Pem
Følgende utgang er resultatet av å kjøre den nevnte spillboken med inventarfilen:
Som du kan se fra det oppgitte eksemplet, implementerte vi den andre spillboken som er autorisert_key_2. Nå som vi har en etablert forbindelse mellom kontrolleren og den eksterne verten, la oss sjekke ved å kjøre spillboken en som er autorisert_key_1 -spillboken og se om den utfører eller ikke:
[root@master ansible]# ansible-playbook autorisert_key_1.yml -i vert.yml
Her er utgangen fra den forrige kommandoen som utføres vellykket:
Konklusjon
Vi lærte hvordan du kobler kontrolleren til de eksterne vertene ved hjelp av Ansible's Autorization Key Module. Vi utviklet eksemplet med en grundig beskrivelse slik at autorisasjonsmodulens grunnleggende tilnærming ville være enkel å forstå.