Odgovorno

Kako koristiti SSH prijavu zasnovanu na lozinci u programu Ansible pomoću sshpass-a

Kako koristiti SSH prijavu zasnovanu na lozinci u programu Ansible pomoću sshpass-a
U ovom članku pokazat ću vam kako pokretati Ansible playbooks koristeći SSH prijavu na bazi lozinke s spass.

Preduvjeti

Ako želite isprobati primjere razmotrene u ovom članku,

1) Na računalu morate imati instaliran Ansible.
2) Morate imati barem Ubuntu / Debian domaćina na koji se možete povezati iz Ansiblea.

Na LinuxHintu postoji mnogo članaka posvećenih Instaliranju Ansiblea. Možete ih provjeriti ako je potrebno za instaliranje potrebnih programa na vaš sustav.

Također ćete morati imati sshpass instaliran na vašem računalu, gdje biste trebali instalirati Ansible. Pokazat ću vam kako instalirati sshpass na Ubuntu / Debian i CentOS / RHEL u ovom članku. Ne brinite ako na svom sustavu već niste instalirali ove programe.

Instaliranje sshpass-a na Ubuntu / Debian

Program sshpass dostupan je u službenom spremištu paketa Ubuntu / Debian. Ovaj program možete jednostavno instalirati na računalo.

Prvo ažurirajte predmemoriju spremišta APT paketa pomoću sljedeće naredbe:

$ sudo apt ažuriranje

Sada instalirajte sshpass putem sljedeće naredbe:

$ sudo apt install sshpass -y

sshpass bi sada trebao biti instaliran.

Instaliranje sshpass-a na CentOS 8 / RHEL 8

sshpass dostupan je u EPEL spremištu CentOS 8 / RHEL 8. Morate imati omogućeno spremište EPEL da biste instalirali sshpass.

Prvo ažurirajte predmemoriju spremišta DNF paketa pomoću sljedeće naredbe:

$ sudo dnf makecache

Zatim instalirajte paket spremišta EPEL putem sljedeće naredbe:

$ sudo dnf instaliraj epel-release -y

Sada bi trebalo instalirati paket spremišta EPEL i omogućiti spremište EPEL.

Ponovno ažurirajte predmemoriju spremišta DNF paketa, kako slijedi:

$ sudo dnf makecache

Instalirati sshpass putem sljedeće naredbe:

$ sudo dnf instaliraj sshpass -y

sshpass treba instalirati.

Postavljanje odgovornog direktorija projekata

Prije nego što nastavimo dalje, bilo bi dobro stvoriti strukturu direktorija projekta, samo da stvari budu malo organizirane.

Za stvaranje direktorija projekta sshpass / i sve potrebne poddirektorijume (u vašem trenutnom radnom direktoriju), pokrenite sljedeću naredbu:

$ mkdir -pv sshpass / datoteke, playbooks

Dođite do direktorija projekta, kako slijedi:

$ cd sshpass /

Stvoriti domaćini inventarna datoteka, kako slijedi:

$ nano domaćini

Dodajte IP ili DNS ime hosta u datoteku inventara.

Kad završite s ovim korakom, spremite datoteku pritiskom na + x, nakon čega slijedi Y i .

Stvorite konfiguracijsku datoteku Ansible u direktoriju projekta, kako slijedi:

$ nano ansible.usp

Sada unesite sljedeće retke u ansible.usp datoteka.

Kad završite s ovim korakom, spremite datoteku pritiskom na + x, nakon čega slijedi Y i .

Testiranje SSH prijave na bazi lozinke u odgovoru

Zatim pokušajte pingati hostove u datoteci inventara, kako slijedi:

$ ansible sve -u shovon -m ping

BILJEŠKA: Evo, -u opcija se koristi kako bi se odgovorilo odgovoru pod kojim se korisnikom prijaviti. U ovom slučaju to će biti korisnik šovon. Zamijenite ovo korisničko ime svojim od sada, tijekom cijele demonstracije.

Kao što vidite, nisam u mogućnosti prijaviti se na host i pokretati bilo koje naredbe.

Da biste prisilili Ansible da zatraži korisničku lozinku, pokrenite ansible naredba s -pitaj-prođi argument, kako slijedi:

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

Kao što vidite, Ansible traži SSH lozinku korisnika. Sada unesite svoju SSH lozinku (korisnička lozinka za prijavu) i pritisnite .

Domaćin se može pingirati, kako slijedi:

Odgovorna SSH prijava na temelju lozinke za Playbooks

Možete koristiti SSH prijavu zasnovanu na lozinci kada pokrećete Ansible playbooks. Pogledajmo primjer.

Prvo izradite novu knjigu pjesama askpass1.yaml u igraonice / direktorij, kako slijedi:

$ nano knjige za igranje / askpass1.yaml

Utipkajte sljedeće retke u askpass1.yaml datoteka playbook:

- domaćini: svi
korisnik: shovon
zadaci:
- ime: Ping svih hostova
ping:
- ime: Ispis poruke
otklanjanje pogrešaka:
msg: 'Sve postavljeno'

Kad završite s ovim korakom, spremite datoteku pritiskom na + x, nakon čega slijedi Y i .

Pokrenite askpass1.yaml playbook, kako slijedi:

$ ansible-playbook playbooks / askpass1.yaml

Kao što vidite, ne mogu se povezati s hostom. Možete vidjeti da je to zato što nisam pokrenuo ansible-playbook naredba s -pitaj-prođi opcija.

Pokrenite askpass1.yaml knjiga s igrama -pitaj-prođi opcija, kako slijedi:

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

Kao što vidite, Ansible traži SSH lozinku. Upišite svoju SSH lozinku i pritisnite .

Knjiga o igrama askpass1.yaml bi sada trebao uspješno raditi.

Ansible sudo Prijava lozinke za Playbooks

The -pitaj-prođi opcija će tražiti samo SSH lozinku za prijavu. Što ako želite unijeti i sudo lozinku? Kako ćete to učiniti vidjet ćete u sljedećim koracima.

Prvo izradite novu knjigu pjesama askpass2.yaml u igraonice / direktorij, kako slijedi:

$ nano knjige za igranje / askpass2.yaml

Utipkajte sljedeće retke u askpass2.yaml datoteka.

- domaćini: svi
korisnik: shovon
postati: Istina
zadaci:
- ime: Instalirajte paket apache2
prikladan:
naziv: apache2
stanje: najnovije
- ime: Provjerite je li usluga apache2 pokrenuta
servis:
naziv: apache2
stanje: započeto
omogućeno: Tačno
- naziv: Kopiraj indeks.html datoteku na poslužitelj
kopirati:
src:… / files / index.html
dest: / var / www / html / index.html
način rada: 0644
vlasnik: www-podaci
grupa: www-podaci

Evo, upotrijebio sam naredbu postati: Istina reći Ansibleu da vodi ovu knjigu s privilegijama sudo. Nakon što završite s ovim korakom, spremite askpass2.yaml datoteku pritiskom na + x, nakon čega slijedi Y i .

Izradite indeks.html datoteku u datoteke / direktorij, kako slijedi:

$ nano datoteke / indeks.html

Upišite sljedeće HTML kodove u indeks.html datoteka:




Početna stranica


Pozdrav svijete


Radi



Kad završite s ovim korakom, spremite datoteku pritiskom na + x nakon čega slijedi Y i .

Možete pokrenuti askpass2.yaml knjiga s igrama -pitaj-prođi opcija, kako slijedi:

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

Tada će se od vas zatražiti SSH lozinka, kao i prije.

Ali knjiga s igrama možda se neće pokrenuti čak i ako navedete SSH lozinku. Razlog tome je što morate odgovoriti Ansible-u da zatraži sudo lozinku, kao i SSH lozinku.

Možete reći Ansibleu da zatraži sudo lozinku pomoću -pitati-postati-proći opcija tijekom pokretanja knjige za reprodukciju, kako slijedi:

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

Sada će Ansible zatražiti SSH lozinku.

Dalje, Ansible će zatražiti sudo lozinku. Ako je vaša sudo lozinka ista kao SSH lozinka (što je najvjerojatnije), ostavite je praznom i pritisnite .

Kao što vidite, priručnik se uspješno izvodio.

Konfiguriranje automatske SSH prijave na bazi lozinke i sudo lozinke

Možda biste željeli koristiti SSH i sudo prijavu na bazi lozinke, ali ne želite upisivati ​​SSH lozinku i sudo lozinku svaki put kada pokrenete knjigu za reprodukciju. Ako je to slučaj, onda je ovaj odjeljak za vas.

Da biste koristili SSH prijavu na bazi lozinke i sudo prijavu bez da se od vas zatraže lozinke, sve što morate učiniti je dodati ansible_ssh_pass i ansible_become_pass host varijable ili varijable grupe u vašoj inventarnoj datoteci.

Prvo otvorite domaćini inventarna datoteka, kako slijedi:

$ nano domaćini

Ako u datoteci inventara imate više hostova i svaki od njih ima različite lozinke, dodajte ansible_ssh_pass i ansible_become_pass varijable kao varijable hosta (nakon svakog hosta) kako slijedi.

Obavezno zamijenite tajna sa svojom SSH i sudo lozinkom.

Ako svi ili neki od hostova imaju istu lozinku, tada možete dodati ansible_ssh_pass i ansible_become_pass varijable kao varijable grupe, kao što je prikazano u primjeru dolje.

Ovdje imam samo jednog domaćina, pa sam dodao i ansible_ssh_pass i ansible_become_pass varijable za svi grupa (svi domaćini u datoteci inventara). Ali, ove varijable možete dodati i za druge određene skupine.

Nakon što završite s dodavanjem ansible_ssh_pass i ansible_become_pass varijable u domaćini datoteku inventara, spremite domaćini popis datoteka pritiskom na + x, nakon čega slijedi Y i .

Sada možete pokrenuti askpass2.yaml playbook, kako slijedi:

$ ansible-playbook playbooks / askpass2.yaml

Kao što vidite, playbook se uspješno izvodio, iako nije tražio SSH ili sudo lozinku.

Dakle, ovo je način na koji koristite sshpass za SSH i sudo prijavu na bazi lozinke u Ansible. Hvala vam što ste pročitali ovaj članak!

Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...
Instalirajte najnoviju strategiju igre OpenRA na Ubuntu Linux
OpenRA je Libre / Free Real Time strateški pokretač igre koji stvara rane Westwoodove igre poput klasične Command & Conquer: Red Alert. Distribuirani ...