Odgovorno

Kako uporabiti prijavo na osnovi gesla SSH v programu Ansible s spass

Kako uporabiti prijavo na osnovi gesla SSH v programu Ansible s spass
V tem članku vam bom pokazal, kako zagnati Ansible playbooks z uporabo SSH gesla za prijavo s spass.

Pogoji

Če bi radi preizkusili primere, obravnavane v tem članku,

1) V računalniku mora biti nameščen Ansible.
2) Imeti morate vsaj gostitelja Ubuntu / Debian, na katerega se lahko povežete iz Ansible.

V LinuxHintu je veliko člankov, namenjenih namestitvi Ansible. Po potrebi jih lahko preverite, če želite v sistem namestiti potrebne programe.

Morali boste tudi imeti sshpass nameščen v računalniku, kjer bi morali imeti nameščen Ansible. Pokazal vam bom, kako namestiti sshpass o Ubuntu / Debian in CentOS / RHEL v tem članku. Ne skrbite, če teh programov v vašem sistemu še niste namestili.

Namestitev sshpass na Ubuntu / Debian

Program sshpass je na voljo v uradnem repozitoriju paketov Ubuntu / Debian. Ta program lahko enostavno namestite v računalnik.

Najprej posodobite predpomnilnik repozitorija paketov APT z naslednjim ukazom:

$ sudo apt posodobitev

Zdaj namestite sshpass prek naslednjega ukaza:

$ sudo apt install sshpass -y

zdaj bi moral biti nameščen sshpass.

Namestitev sshpass-a na CentOS 8 / RHEL 8

sshpass je na voljo v repozitoriju EPEL CentOS 8 / RHEL 8. Če želite namestiti sshpass, morate imeti omogočeno skladišče EPEL.

Najprej z naslednjim ukazom posodobite predpomnilnik repozitorija paketov DNF:

$ sudo dnf makecache

Nato namestite paket repozitorija EPEL z naslednjim ukazom:

$ sudo dnf namestite epel-release -y

Zdaj je treba namestiti paket repozitorija EPEL in omogočiti repozitorij EPEL.

Ponovno posodobite predpomnilnik repozitorija paketov DNF, kot sledi:

$ sudo dnf makecache

Namestite sshpass prek naslednjega ukaza:

$ sudo dnf namestite sshpass -y

sshpass namestiti.

Nastavitev Ansible Project Directory

Preden nadaljujemo, bi bilo dobro ustvariti strukturo imenika projekta, samo da bi bile stvari nekoliko organizirane.

Če želite ustvariti imenik projekta sshpass / in vse zahtevane podimenike (v trenutnem delovnem imeniku) zaženite naslednji ukaz:

$ mkdir -pv sshpass / datoteke, playbooks

Pomaknite se do imenika projekta, kot sledi:

$ cd sshpass /

Ustvariti gostitelji inventarna datoteka, kot sledi:

$ nano gostitelji

V datoteko inventarja dodajte ime gostitelja IP ali DNS.

Ko končate s tem korakom, shranite datoteko s pritiskom na + X, čemur sledi Y in .

V imeniku projekta ustvarite konfiguracijsko datoteko Ansible, kot sledi:

$ nano ansible.prim

Zdaj vnesite naslednje vrstice v ansible.prim mapa.

Ko končate s tem korakom, shranite datoteko s pritiskom na + X, čemur sledi Y in .

Testiranje SSH prijave na osnovi gesla v programu Ansible

Nato poskusite pingati gostitelje v datoteki inventarja, kot sledi:

$ ansible all -u shovon -m ping

OPOMBA: Tukaj -u možnost se uporablja, da pove odgovoru, pri katerem uporabniku naj se prijavi. V tem primeru bo to uporabnik shovon. Od zdaj naprej v celotni predstavitvi to uporabniško ime zamenjajte z vašim.

Kot lahko vidite, se ne morem prijaviti v gostitelja in zagnati nobenega ukaza.

Če želite prisiliti Ansible, da zahteva uporabniško geslo, zaženite ansible ukaz z -vprašaj-podaj argument, kot sledi:

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

Kot lahko vidite, Ansible prosi za geslo SSH uporabnika. Zdaj vnesite geslo SSH (uporabniško geslo za prijavo) in pritisnite .

Gostitelja lahko pingiramo na naslednji način:

Ansible SSH prijava na podlagi gesla za Playbooks

Pri zagonu Ansible playbooks lahko uporabite prijavo SSH na osnovi gesla. Oglejmo si primer.

Najprej ustvarite novo knjigo iger askpass1.yaml v igralne knjige / imenik, kot sledi:

$ nano playbooks / askpass1.yaml

V vrstico vnesite naslednje vrstice askpass1.yaml datoteka playbook:

- gostitelji: vsi
uporabnik: shovon
naloge:
- ime: Ping vse gostitelje
ping:
- ime: Natisnite sporočilo
odpravljanje napak:
msg: 'Vse nastavljeno'

Ko končate s tem korakom, shranite datoteko s pritiskom na + X, čemur sledi Y in .

Zaženite askpass1.yaml playbook, kot sledi:

$ ansible-playbook playbooks / askpass1.yaml

Kot vidite, se z gostiteljem ne morem povezati. Vidite, da je to zato, ker nisem vodil ansible-playbook ukaz z -vprašaj-podaj možnost.

Zaženite askpass1.yaml knjiga z igrami -vprašaj-podaj možnost, kot sledi:

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

Kot lahko vidite, Ansible zahteva geslo SSH. Vnesite geslo SSH in pritisnite .

Knjigo iger askpass1.yaml bi se zdaj moral uspešno izvajati.

Ansible sudo Prijava za geslo za Playbooks

The -vprašaj-podaj možnost bo zahtevala samo geslo za prijavo SSH. Kaj pa, če želite vtipkati tudi sudo geslo? Kako to storite, boste videli v naslednjih korakih.

Najprej ustvarite novo knjigo iger askpass2.yaml v igralne knjige / imenik, kot sledi:

$ nano playbooks / askpass2.yaml

V vrstico vnesite naslednje vrstice askpass2.yaml mapa.

- gostitelji: vsi
uporabnik: shovon
postati: Resnično
naloge:
- ime: Namestite paket apache2
primeren:
ime: apache2
stanje: najnovejše
- ime: Prepričajte se, da se storitev apache2 izvaja
storitev:
ime: apache2
stanje: začelo
omogočeno: True
- ime: Kopiraj indeks.html na strežnik
kopirati:
src:… / files / index.html
dest: / var / www / html / index.html
način: 0644
lastnik: www-data
skupina: www-data

Tukaj sem uporabil ukaz postati: Resnično povedati Ansibleju, naj vodi to igro s sudo privilegiji. Ko končate s tem korakom, shranite askpass2.yaml s pritiskom na + X, čemur sledi Y in .

Ustvari indeks.html v datoteki datoteke / imenik, kot sledi:

$ nano datoteke / kazalo.html

Vnesite naslednje kode HTML indeks.html mapa:




Domača stran


Pozdravljen, svet


Deluje



Ko končate s tem korakom, shranite datoteko s pritiskom na + X čemur sledi Y in .

Lahko zaženete askpass2.yaml knjiga z igrami -vprašaj-podaj možnost, kot sledi:

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

Nato vas bodo vprašali za geslo SSH, kot prej.

Toda knjiga se še vedno ne bo izvajala, tudi če navedete geslo SSH. Razlog za to je, da morate odgovoriti Ansible, naj zahteva geslo za sudo in geslo SSH.

Ansibleju lahko poveste, naj za geslo sudo zahteva -vprašaj-postani-prenesite možnost med zagonom knjižice, kot sledi:

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

Zdaj vas bo Ansible pozval k geslu SSH.

Nato vas bo Ansible pozval k vnosu gesla za sudo. Če je vaše sudo geslo enako geslu SSH (kar je najverjetneje), ga pustite prazno in pritisnite .

Kot lahko vidite, je knjiga iger uspešno tekla.

Konfiguriranje samodejnega gesla za SSH prijavo in sudo geslo za prijavo

Morda boste želeli uporabiti SSH in sudo prijavo na osnovi gesla, vendar ne želite vnesti gesla SSH in sudo gesla vsakič, ko zaženete igro. V tem primeru je ta razdelek za vas.

Če želite uporabiti SSH-prijavo na osnovi gesla in sudo-prijavo, ne da bi vas kdo pozval k geslom, morate le dodati ansible_ssh_pass in ansible_become_pass spremenljivke gostitelja ali spremenljivke skupine v vaši inventarni datoteki.

Najprej odprite gostitelji inventarna datoteka, kot sledi:

$ nano gostitelji

Če imate v datoteki inventarja več gostiteljev in ima vsak gostitelj različna gesla, dodajte ansible_ssh_pass in ansible_become_pass spremenljivke kot gostiteljske spremenljivke (za vsakim gostiteljem), kot sledi.

Ne pozabite zamenjati skrivnost s svojim SSH in sudo geslom.

Če imajo vsi ali nekateri gostitelji isto geslo, lahko dodate ansible_ssh_pass in ansible_become_pass spremenljivke kot skupinske spremenljivke, kot je prikazano v spodnjem primeru.

Tu imam samo enega gostitelja, zato sem dodal ansible_ssh_pass in ansible_become_pass spremenljivke za vse skupina (vsi gostitelji v inventarni datoteki). Toda te spremenljivke lahko dodate tudi za druge posebne skupine.

Ko končate z dodajanjem ansible_ssh_pass in ansible_become_pass spremenljivke v gostitelji datoteko inventarja, shranite datoteko gostitelji s pritiskom na + X, čemur sledi Y in .

Zdaj lahko zaženete askpass2.yaml playbook, kot sledi:

$ ansible-playbook playbooks / askpass2.yaml

Kot lahko vidite, se je knjiga z igrami uspešno izvajala, čeprav ni zahtevala gesla SSH ali sudo gesla.

Torej, tako uporabljate sshpass za SSH in sudo prijavo na osnovi gesla v Ansible. Hvala, ker ste prebrali ta članek!

Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...
Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...