Ansible

Hvordan bruke SSH passordbasert pålogging i Ansible ved hjelp av sshpass

Hvordan bruke SSH passordbasert pålogging i Ansible ved hjelp av sshpass
I denne artikkelen vil jeg vise deg hvordan du kjører Ansible spillbøker ved hjelp av en SSH passordbasert pålogging med sshpass.

Forutsetninger

Hvis du vil prøve eksemplene som er diskutert i denne artikkelen,

1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst en Ubuntu / Debian-vert du kan koble deg til fra Ansible.

Det er mange artikler om LinuxHint dedikert til Installing Ansible. Du kan sjekke disse om nødvendig for å installere de nødvendige programmene på systemet ditt.

Du må også ha sshpass installert på datamaskinen din, hvor du skal ha Ansible installert. Jeg vil vise deg hvordan du installerer sshpass på Ubuntu / Debian og CentOS / RHEL i denne artikkelen. Ikke bekymre deg hvis du ikke har disse programmene allerede installert på systemet ditt.

Installerer sshpass på Ubuntu / Debian

Programmet sshpass er tilgjengelig i det offisielle pakkelageret til Ubuntu / Debian. Du kan enkelt installere dette programmet på datamaskinen din.

Oppdater først APT-pakkeoppbevaringsbufferen via følgende kommando:

$ sudo apt oppdatering

Nå, installer sshpass via følgende kommando:

$ sudo apt install sshpass -y

sshpass skal nå installeres.

Installere sshpass på CentOS 8 / RHEL 8

sshpass er tilgjengelig i EPEL-depotet til CentOS 8 / RHEL 8. Du må ha EPEL-depotet aktivert for å installere sshpass.

Oppdater først DNF-pakkeoppbevaringsbufferen via følgende kommando:

$ sudo dnf makecache

Deretter installerer du EPEL-depotpakken via følgende kommando:

$ sudo dnf installer epel-release -y

EPEL-depotpakken skal nå installeres og EPEL-depotet skal aktiveres.

Oppdater DNF-pakkeoppbevaringsbufferen igjen, som følger:

$ sudo dnf makecache

Installere sshpass via følgende kommando:

$ sudo dnf installer sshpass -y

sshpass skal installeres.

Sette opp en synlig prosjektkatalog

Før vi går videre, vil det være lurt å lage en prosjektkatalogstruktur, bare for å holde ting litt organisert.

Å lage en prosjektkatalog sshpass / og alle nødvendige underkataloger (i din nåværende arbeidskatalog), kjør følgende kommando:

$ mkdir -pv sshpass / filer, spillbøker

Naviger til prosjektkatalogen, som følger:

$ cd sshpass /

Lage en verter inventarfil, som følger:

$ nano verter

Legg til vertsens IP- eller DNS-navn i lagerfilen.

Når du er ferdig med dette trinnet, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Opprett en Ansible-konfigurasjonsfil i prosjektkatalogen, som følger:

$ nano ansible.cfg

Skriv inn følgende linjer i ansible.cfg fil.

Når du er ferdig med dette trinnet, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Testing av passordbasert SSH-pålogging i Ansible

Deretter prøver du å pinge vertene i lagerfilen, som følger:

$ ansible all -u shovon -m ping

MERK: Her, den -u alternativet brukes til å fortelle hvilken bruker som skal logge på som. I dette tilfellet vil det være brukeren shovon. Bytt ut dette brukernavnet med ditt fra nå av, gjennom hele demonstrasjonen.

Som du kan se, kan jeg ikke logge på verten og kjøre noen kommandoer.

For å tvinge Ansible til å be om brukerpassordet, kjør ansible kommando med -spør-pass argument, som følger:

$ ansible all -u shovon --ask-pass -m ping

Som du kan se, ber Ansible om SSH-passordet til brukeren. Nå skriver du inn SSH-passordet ditt (brukerinnloggingspassord) og trykker på .

Verten kan pinges, som følger:

Ansible passordbasert SSH-pålogging for Playbooks

Du kan bruke en passordbasert SSH-pålogging når du kjører Ansible playbooks. La oss se på et eksempel.

Først oppretter du en ny lekebok askpass1.yaml i lekebøker / katalog, som følger:

$ nano playbooks / askpass1.yaml

Skriv inn følgende linjer i askpass1.yaml playbook-fil:

- verter: alle
bruker: shovon
oppgaver:
- navn: Ping alle vertene
ping:
- navn: Skriv ut en melding
feilsøke:
msg: 'All set'

Når du er ferdig med dette trinnet, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Kjør askpass1.yaml spillbok, som følger:

$ ansible-playbook playbooks / askpass1.yaml

Som du kan se, kan jeg ikke koble meg til verten. Du kan se at dette er fordi jeg ikke kjørte ansible-playbook kommando med -spør-pass alternativ.

Kjør askpass1.yaml lekebok med -spør-pass som følger:

$ ansible-playbook -ask-pass playbooks / askpass1.yaml

Som du kan se, ber Ansible om et SSH-passord. Skriv inn SSH-passordet ditt og trykk .

Lekeboken askpass1.yaml skal nå kjøre vellykket.

Ansible sudo Passord Pålogging for Playbooks

De -spør-pass alternativet vil bare be om SSH-påloggingspassordet. Hva om du også vil skrive inn sudo-passordet? Du vil se hvordan du gjør dette i de neste trinnene.

Først oppretter du en ny lekebok askpass2.yaml i lekebøker / katalog, som følger:

$ nano playbooks / askpass2.yaml

Skriv inn følgende linjer i askpass2.yaml fil.

- verter: alle
bruker: shovon
bli: Sant
oppgaver:
- navn: Installer apache2-pakke
apt:
navn: apache2
tilstand: siste
- navn: Kontroller at apache2-tjenesten kjører
service:
navn: apache2
tilstand: startet
aktivert: Sant
- navn: Kopier indeks.html-fil til server
kopiere:
src: ... / filer / indeks.html
dest: / var / www / html / index.html
modus: 0644
eier: www-data
gruppe: www-data

Her har jeg brukt kommandoen bli: Sant å fortelle Ansible å kjøre denne spillboken med sudo-privilegier. Når du er ferdig med dette trinnet, lagrer du askpass2.yaml filen ved å trykke på + X, etterfulgt av Y og .

Lag en indeks.html filen i filer / katalog, som følger:

$ nano filer / indeks.html

Skriv inn følgende HTML-koder i indeks.html fil:




Hjemmeside


Hei Verden


Det fungerer



Når du er ferdig med dette trinnet, lagrer du filen ved å trykke på + X etterfulgt av Y og .

Du kan kjøre askpass2.yaml lekebok med -spør-pass som følger:

$ ansible-playbook --ask-pass playbooks / askpass2.yaml

Du blir da bedt om SSH-passordet, som før.

Men spillboken kan fortsatt ikke kjøres selv om du oppgir SSH-passordet. Årsaken til dette er fordi du må be Ansible om å be om sudo-passordet, samt SSH-passordet.

Du kan be Ansible om å be om sudo-passordet ved hjelp av -spør-bli-pass alternativet mens du kjører spillboken, som følger:

$ ansible-playbook --ask-pass --ask-become-pass playbooks / askpass2.yaml

Nå vil Ansible be deg om SSH-passordet.

Deretter vil Ansible be deg om sudo-passordet. Hvis sudo-passordet ditt er det samme som SSH-passordet (som er mest sannsynlig), la det være tomt og trykk .

Som du kan se, kjørte spillboken vellykket.

Konfigurere automatisk passordbasert SSH-pålogging og sudo-passordinnlogging

Det kan være lurt å bruke passordbasert SSH og sudo-pålogging, men ikke ønsker å skrive inn SSH-passordet og sudo-passordet hver gang du kjører en spillbok. Hvis det er tilfelle, er denne delen noe for deg.

For å bruke passordbasert SSH-pålogging og sudo-pålogging uten å bli bedt om passordene, er alt du trenger å gjøre å legge til ansible_ssh_pass og ansible_become_pass vertsvariabler eller gruppevariabler i lagerfilen din.

Først åpner du verter inventarfil, som følger:

$ nano verter

Hvis du har flere verter i lagerfilen din, og hver av vertene har forskjellige passord, legg deretter til ansible_ssh_pass og ansible_become_pass variabler som vertsvariabler (etter hver vert) som følger.

Pass på å bytte ut hemmelig med SSH- og sudo-passordet ditt.

Hvis alle eller noen av vertene har samme passord, kan du legge til ansible_ssh_pass og ansible_become_pass variabler som gruppevariabler, som vist i eksemplet nedenfor.

Her har jeg bare en vert, så jeg har lagt til ansible_ssh_pass og ansible_become_pass variabler for alle gruppe (alle verter i lagerfilen). Men du kan også legge til disse variablene for andre spesifikke grupper.

Når du er ferdig med å legge til ansible_ssh_pass og ansible_become_pass variabler i verter lagerfil, lagre verter lagerfil ved å trykke + X, etterfulgt av Y og .

Du kan nå kjøre askpass2.yaml spillbok, som følger:

$ ansible-playbook playbooks / askpass2.yaml

Som du kan se, kjørte spillboken vellykket, selv om den ikke ba om SSH-passordet eller sudo-passordet.

Så dette er hvordan du bruker sshpass for passordbasert SSH og sudo-pålogging i Ansible. Takk for at du leser denne artikkelen!

Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...