Ansible bruker det deklarative språket for å beskrive ønsket tilstand til systemene og håndterer automatisk oppgavene som er nødvendige for å oppnå denne tilstanden.
Ansible bruker SSH som standard tilkoblingsmetode for å koble til en målmaskin. SSH gir en sikker og kryptert kommunikasjonskanal mellom Ansible-kontrollnoden og målvertene.
Vanligvis er den vanligste metoden for å konfigurere den SSH-nøkkelbaserte autentiseringen for målverten ssh-copy-id-kommandoen. Kommandoen kopierer den offentlige nøkkelen til kontrollnoden til filen 'authorized_keys' på målverten.
Men når du konfigurerer et system for første gang, kan det hende du trenger Ansible for å gjøre det i en spillebok. Det er her Ansible-samfunnet kommer til unnsetning.
I Ansible-fellesskapet har vi tilgang til rollen ssh_id_copy som lar oss autorisere systemene for passordløs SSH-autentisering.
Denne rollen håndterer oppsettet av SSH-nøklene på den eksterne maskinen som lar oss lage en Ansible inventarfil med den eksterne maskinen. Vi kan da raskt ringe hvilken som helst Ansible-spillebok mot den eksterne maskinen.
Ansible Ssh_Copy_Id-rolle
Rollen har variabler som lar Ansible konfigurere SSH-nøklene på den eksterne verten. Slike variabler inkluderer:
Vertsnavn – Den definerer det eksterne systemet som skal kobles til (FQDN eller IP).
Brukernavn – Den spesifiserer brukernavnet som skal kobles til det eksterne systemet.
Passord – Den definerer passordet til brukernavnet for å koble til det eksterne systemet.
ssh_public_key – Den definerer den absolutte banen til den offentlige nøkkelfilen som skal konfigureres på den eksterne verten.
Havn – Den definerer SSH-porten.
Installere Ssh_Copy_Id-rollen
FORSIKTIGHET: Vi kan ikke gi gyldigheten og sikkerheten til fellesskapsdrevne roller og moduler. Vennligst kontroller og kontroller funksjonene til en rolle/modul før du bruker den i produksjon og på ekte maskiner. Ingen sikkerhet er garantert når du arbeider med trinnene som er skissert i dette innlegget.
Som nevnt er ssh_copy_id en fellesskapsgitt rolle som leveres av Ryan. Linken til depotet er gitt som følger:
https://github.com/ryankwilliams/ansible-ssh-copy-id
Før vi kan bruke den, må vi sørge for at den er installert ved å kjøre følgende kommando:
$ ansible-galakse installere rywillia.ssh-copy-id
Eksempel på bruk
Når den er installert, kan vi bruke rollen i en spillebok som vist i følgende:
---- Navn : konfigurere passordløs ssh-autentisering på en ekstern maskin
verter : lokal vert
bli : ja
roller :
- rolle : ryankwilliams.ssh_copy_id
hvem sin :
vertsnavn : 172.168.112.23
brukernavn : ubuntu
passord : passord
ssh_public_key : /home/debian12/.ssh/id_rsa.pub
ssh_port : 22
Den forrige eksempelspilleboken viser hvordan du bruker rollen til å sette opp den passordløse SSH-autentiseringen, en bruker som er definert i den eksterne maskinen.
Konklusjon
I denne introduksjonsveiledningen lærte du hvordan du kan dra nytte av fellesskapsleverte roller og moduler for å konfigurere den passordløse SSH-autentiseringen på eksterne verter ved å bruke en Ansible-spillebok.