Priekšnoteikumi
Ja vēlaties izmēģināt šajā rakstā aplūkotos piemērus,
1) Jūsu datorā jābūt instalētai programmai Ansible.
2) Jums jābūt vismaz Ubuntu / Debian resursdatoram, kuram varat izveidot savienojumu no Ansible.
Vietnē LinuxHint ir daudz rakstu, kas veltīti instalēšanai Ansible. Jūs varat tos pārbaudīt, ja nepieciešams, lai instalētu nepieciešamās programmas savā sistēmā.
Jums arī vajadzēs sshpass instalēta datorā, kur jābūt instalētai Ansible. Es jums parādīšu, kā instalēt sshpass šajā rakstā par Ubuntu / Debian un CentOS / RHEL. Neuztraucieties, ja šīs programmas vēl nav instalētas jūsu sistēmā.
Sshpass instalēšana Ubuntu / Debian
Programma sshpass ir pieejams Ubuntu / Debian oficiālajā pakotņu krātuvē. Jūs varat viegli instalēt šo programmu savā datorā.
Vispirms atjauniniet APT pakotnes krātuves kešatmiņu, izmantojot šādu komandu:
$ sudo apt atjauninājums
Tagad instalējiet sshpass izmantojot šādu komandu:
$ sudo apt instalējiet sshpass -y
Tagad vajadzētu instalēt sshpass.
Sshpass instalēšana CentOS 8 / RHEL 8
sshpass ir pieejams CentOS 8 / RHEL 8 EPEL krātuvē. Lai instalētu sshpass, jābūt iespējotai EPEL repozitorijam.
Vispirms atjauniniet DNF pakotnes krātuves kešatmiņu, izmantojot šādu komandu:
$ sudo dnf makecache
Pēc tam instalējiet EPEL repozitorija pakotni, izmantojot šādu komandu:
$ sudo dnf instalējiet epel-release -y
Tagad ir jāinstalē EPEL repozitorija pakotne un jāiespējo EPEL repozitorijs.
Atkal atjauniniet DNF pakotnes krātuves kešatmiņu šādi:
$ sudo dnf makecache
Uzstādīt sshpass izmantojot šādu komandu:
$ sudo dnf instalējiet sshpass -y
sshpass jāuzstāda.
Ansible Project Directory iestatīšana
Pirms mēs turpinām turpināt, būtu ieteicams izveidot projekta direktoriju struktūru, lai lietas būtu mazliet sakārtotas.
Lai izveidotu projekta direktoriju sshpass / un visas nepieciešamās apakšdirektorijas (pašreizējā darba direktorijā), izpildiet šādu komandu:
$ mkdir -pv sshpass / faili, atskaņošanas grāmatas
Pārejiet uz projekta direktoriju šādi:
$ cd sshpass /
Izveidojiet a saimniekiem krājuma fails:
$ nano saimnieki
Inventāra failā pievienojiet sava resursdatora IP vai DNS nosaukumu.
Kad esat pabeidzis šo darbību, saglabājiet failu, nospiežot
Projekta direktorijā izveidojiet Ansible konfigurācijas failu šādi:
$ nano ansible.cfg
Tagad ierakstiet šādās rindā iespējams.cfg failu.
Kad esat pabeidzis šo darbību, saglabājiet failu, nospiežot
Notiek ar paroli balstītas SSH pieteikšanās pārbaude anonīms
Pēc tam mēģiniet pingēt resursdatorus inventarizācijas failā šādi:
$ ansible all -u shovon -m pingPIEZĪME: Lūk, -u opcija tiek izmantota, lai norādītu iespējamam lietotājam, kā pieteikties. Šajā gadījumā tas būs lietotājs šovons. Turpmāk visā demonstrācijas laikā nomainiet šo lietotājvārdu ar savu.
Kā redzat, es nevaru pieteikties resursdatorā un palaist nevienu komandu.
Lai piespiestu Ansible pieprasīt lietotāja paroli, palaidiet iespējams komandu ar -ask-pass šāds arguments:
$ ansible all -u shovon --ask-pass -m ping
Kā redzat, Ansible pieprasa lietotāja SSH paroli. Tagad ierakstiet savu SSH paroli (lietotāja pieteikšanās paroli) un nospiediet
Saimnieku var pingēt šādi:
SSH pieteikšanās uz paroli, kas paredzēta Playbooks
Palaižot Ansible playbooks, varat izmantot paroli balstītu SSH pieteikšanos. Apskatīsim piemēru.
Vispirms izveidojiet jaunu spēļu grāmatu askpass1.yaml iekš playbooks / direktorijā:
$ nano playbooks / askpass1.yaml
Ierakstiet šādas rindiņas askpass1.yaml atskaņošanas grāmatas fails:
- saimnieki: visilietotājs: shovon
uzdevumi:
- nosaukums: Ping visiem saimniekiem
ping:
- nosaukums: izdrukājiet ziņojumu
atkļūdošana:
msg: “Viss iestatīts”
Kad esat pabeidzis šo darbību, saglabājiet failu, nospiežot
Palaidiet askpass1.yaml playbook šādi:
$ ansible-playbook atskaņošanas grāmatas / askpass1.yaml
Kā redzat, es nevaru izveidot savienojumu ar resursdatoru. Jūs varat redzēt, ka tas ir tāpēc, ka es neizmantoju ansible-playbook komandu ar -ask-pass opcija.
Palaidiet askpass1.yaml spēļu grāmata ar -ask-pass šādi:
$ ansible-playbook -ask-pass playbooks / askpass1.yaml
Kā redzat, Ansible lūdz SSH paroli. Ievadiet savu SSH paroli un nospiediet
Spēļu grāmata askpass1.yaml tagad vajadzētu veiksmīgi darboties.
Anonīma sudo paroles pieteikšanās Playbooks
The -ask-pass opcija prasīs tikai SSH pieteikšanās paroli. Ko darīt, ja vēlaties arī ievadīt sudo paroli? Kā to izdarīt, jūs redzēsiet nākamajās darbībās.
Vispirms izveidojiet jaunu spēļu grāmatu askpass2.yaml iekš playbooks / direktorijā:
$ nano playbooks / askpass2.yaml
Ierakstiet šādas rindiņas askpass2.yaml failu.
- saimnieki: visilietotājs: shovon
kļūt: Patiesi
uzdevumi:
- nosaukums: Instalējiet apache2 pakotni
apt:
nosaukums: apache2
stāvoklis: vēlākais
- nosaukums: Pārliecinieties, vai darbojas apache2 pakalpojums
apkalpošana:
nosaukums: apache2
stāvoklis: sākts
iespējots: taisnība
- nosaukums: Kopēt indeksu.HTML failu uz serveri
kopija:
src:… / files / index.html
dest: / var / www / html / index.html
režīms: 0644
īpašnieks: www-data
grupa: www-dati
Lūk, es esmu izmantojis komandu kļūt: Patiesi pateikt Ansible palaist šo atskaņošanas grāmatu ar sudo privilēģijām. Kad esat pabeidzis šo darbību, saglabājiet askpass2.yaml failu, nospiežot
Izveidojiet indekss.html failu faili / direktorijā:
$ nano faili / indekss.html
Ierakstiet šādus HTML kodus indekss.html fails:
Sveika pasaule
Tas strādā
Kad esat pabeidzis šo darbību, saglabājiet failu, nospiežot
Jūs varat palaist askpass2.yaml spēļu grāmata ar -ask-pass šādi:
$ ansible-playbook - ask-pass playbooks / askpass2.yaml
Pēc tam jums tiks lūgts ievadīt SSH paroli, tāpat kā iepriekš.
Bet playbook joprojām var nedarboties, pat ja norādāt SSH paroli. Iemesls tam ir tāpēc, ka jums jāpasaka Ansible pieprasīt sudo paroli, kā arī SSH paroli.
Jūs varat pateikt Ansible lūgt sudo paroli, izmantojot -jautāt-kļūt-pāriet opcija, palaižot atskaņošanas grāmatu, šādi:
$ ansible-playbook - ask-pass - ask-tapti-pass atskaņošanas grāmatas / askpass2.yaml
Tagad Ansible pieprasīs ievadīt SSH paroli.
Pēc tam Ansible pieprasīs ievadīt sudo paroli. Ja jūsu sudo parole ir tāda pati kā SSH parole (kas, visticamāk), tad atstājiet to tukšu un nospiediet
Kā redzat, spēļu grāmata veiksmīgi darbojās.
Automātiskas SSH pieteikšanās un uz paroles pieteikšanās sudo konfigurēšana
Iespējams, vēlēsities izmantot paroli balstītu SSH un sudo pieteikšanos, taču nevēlaties katru reizi palaist atskaņošanas grāmatu ierakstīt SSH paroli un sudo paroli. Ja tas tā ir, tad šī sadaļa ir domāta jums.
Lai izmantotu paroli balstītu SSH pieteikšanos un sudo pieteikšanos bez paroļu pieprasīšanas, jums atliek tikai pievienot ansible_ssh_pass un ansible_become_pass resursdatora mainīgos vai grupas mainīgos jūsu krājuma failā.
Vispirms atveriet saimniekiem krājuma fails:
$ nano saimnieki
Ja krājuma failā ir vairāki resursdatori un katram no tiem ir atšķirīgas paroles, pievienojiet ansible_ssh_pass un ansible_become_pass mainīgie kā resursdatora mainīgie (aiz katra resursdatora) šādi.
Noteikti nomainiet noslēpums ar savu SSH un sudo paroli.
Ja visiem vai dažiem saimniekiem ir viena un tā pati parole, varat pievienot ansible_ssh_pass un ansible_become_pass mainīgie kā grupas mainīgie, kā parādīts zemāk esošajā piemērā.
Šeit man ir tikai viens resursdators, tāpēc esmu pievienojis ansible_ssh_pass un ansible_become_pass mainīgie lielumam visi grupa (visi resursdatori krājuma failā). Bet jūs varat pievienot šos mainīgos arī citām konkrētām grupām.
Kad esat pabeidzis pievienot ansible_ssh_pass un ansible_become_pass mainīgie lielumos saimniekiem inventāra failu, saglabājiet saimniekiem inventāra failu, nospiežot
Tagad jūs varat palaist askpass2.yaml playbook šādi:
$ ansible-playbook atskaņošanas grāmatas / askpass2.yaml
Kā redzat, atskaņošanas grāmata darbojās veiksmīgi, lai gan tā neprasīja SSH paroli vai sudo paroli.
Tātad, jūs to izmantojat sshpass paroli balstītai SSH un sudo pieteikšanās iespējai Ansible. Paldies, ka izlasījāt šo rakstu!