Būtinos sąlygos
Jei norite išbandyti šiame straipsnyje aptartus pavyzdžius,
1) Savo kompiuteryje turite būti įdiegę „Ansible“.
2) Jūs turite turėti bent Ubuntu / Debian pagrindinį kompiuterį, prie kurio galėsite prisijungti iš „Ansible“.
„LinuxHint“ yra daug straipsnių, skirtų įdiegti „Ansible“. Galite patikrinti, jei reikia, kad įdiegtumėte reikiamas programas savo sistemoje.
Jums taip pat reikės turėti sshpass įdiegta jūsų kompiuteryje, kur turėtumėte įdiegti „Ansible“. Aš jums parodysiu, kaip įdiegti sshpass apie Ubuntu / Debian ir CentOS / RHEL šiame straipsnyje. Nesijaudinkite, jei dar neturite šių programų savo sistemoje.
„Sshpass“ diegimas „Ubuntu“ / „Debian“
Programa sshpass yra oficialioje „Ubuntu / Debian“ paketų saugykloje. Šią programą galite lengvai įdiegti savo kompiuteryje.
Pirmiausia atnaujinkite APT paketų saugyklos talpyklą naudodami šią komandą:
$ sudo apt atnaujinimas
Dabar įdiekite sshpass naudodami šią komandą:
$ sudo apt install sshpass -y
Dabar turėtų būti įdiegtas „sshpass“.
„Sshpass“ diegimas „CentOS 8 / RHEL 8“
sshpass yra „CentOS 8 / RHEL 8“ EPEL saugykloje. Norėdami įdiegti „sshpass“, turite būti įgalinę EPEL saugyklą.
Pirmiausia atnaujinkite DNF paketo saugyklos talpyklą naudodami šią komandą:
$ sudo dnf makecache
Tada įdiekite EPEL saugyklos paketą naudodami šią komandą:
$ sudo dnf įdiekite epel-release -y
Dabar turėtų būti įdiegtas EPEL saugyklos paketas ir įgalinta EPEL saugykla.
Dar kartą atnaujinkite DNF paketo saugyklos talpyklą taip:
$ sudo dnf makecache
Diegti sshpass naudodami šią komandą:
$ sudo dnf įdiekite sshpass -y
sshpass turėtų būti įdiegta.
Anoniminio projekto katalogo nustatymas
Prieš pereinant toliau, būtų gera mintis sukurti projekto katalogo struktūrą, kad viskas būtų šiek tiek sutvarkyta.
Norėdami sukurti projekto katalogą sshpass / ir visus reikalingus pakatalogius (dabartiniame darbo kataloge), vykdykite šią komandą:
$ mkdir -pv sshpass / failai, grojaraščiai
Eikite į projekto katalogą taip:
$ cd sshpass /
Sukurti šeimininkai atsargų byla taip:
$ nano šeimininkai
Pridėkite pagrindinio kompiuterio IP arba DNS pavadinimą į atsargų failą.
Baigę šį veiksmą, išsaugokite failą paspausdami
Projekto kataloge sukurkite Ansible konfiguracijos failą taip:
$ nano galima.plg
Dabar įveskite šias eilutes įmanoma.plg failą.
Baigę šį veiksmą, išsaugokite failą paspausdami
Testuojamas slaptažodžiu pagrįstas SSH prisijungimas prie „Ansible“
Tada pabandykite pinguoti kompiuterius inventoriaus faile taip:
$ ansible all -u shovon -m pingPASTABA: Čia, -u parinktis naudojama nurodant, kuriam vartotojui reikia prisijungti. Šiuo atveju tai bus vartotojas shovon. Nuo šiol visą demonstracinę versiją pakeiskite šį vartotojo vardą savo vardu.
Kaip matote, negaliu prisijungti prie pagrindinio kompiuterio ir paleisti jokių komandų.
Norėdami priversti „Ansible“ paprašyti vartotojo slaptažodžio, paleiskite įmanoma komanda su -klausti-perduoti argumentą:
$ ansible all -u shovon --ask-pass -m ping
Kaip matote, „Ansible“ paprašo vartotojo SSH slaptažodžio. Dabar įveskite savo SSH slaptažodį (vartotojo prisijungimo slaptažodį) ir paspauskite
Pagrindinį kompiuterį galima pinguoti taip:
SSL prisijungimas prie „Playbooks“ slaptažodžiu
SSH prisijungimą galite naudoti slaptažodžiu, kai paleidžiate „Ansible playbooks“. Pažvelkime į pavyzdį.
Pirmiausia sukurkite naują pjesę askpass1.yaml viduje konors grojaraščiai / katalogą:
„$ nano“ grojaraščiai / „askpass“.yaml
Įveskite šias eilutes askpass1.yaml grojaraščio failas:
- šeimininkai: visivartotojas: shovon
užduotys:
- vardas: Ping visi kompiuteriai
ping:
- pavadinimas: išspausdinkite pranešimą
derinti:
pranešimas: „Viskas nustatyta“
Baigę šį veiksmą, išsaugokite failą paspausdami
Paleiskite askpass1.yaml pjesė:
$ ansible-playbook playbooks / askpass1.yaml
Kaip matote, negaliu prisijungti prie pagrindinio kompiuterio. Matote, kad taip yra todėl, kad aš nepaleidau ansible-playbook komanda su -klausti-perduoti variantą.
Paleiskite askpass1.yaml pjesė su -klausti-perduoti parinktį taip:
$ ansible-playbook -ask-pass playbooks / askpass1.yaml
Kaip matote, „Ansible“ prašo įvesti SSH slaptažodį. Įveskite savo SSH slaptažodį ir paspauskite
Pjesių knyga askpass1.yaml dabar turėtų sėkmingai veikti.
„Playbooks“ prisijungimas prie „sudo“ slaptažodžio
The -klausti-perduoti parinktis paprašys tik SSH prisijungimo slaptažodžio. Ką daryti, jei taip pat norite įvesti sudo slaptažodį? Kaip tai padaryti, pamatysite atlikdami kitus veiksmus.
Pirmiausia sukurkite naują pjesę askpass2.yaml viduje konors grojaraščiai / katalogą:
$ nano grojaraščiai / askpass2.yaml
Įveskite šias eilutes askpass2.yaml failą.
- šeimininkai: visivartotojas: shovon
tapti: Tiesa
užduotys:
- pavadinimas: įdiekite apache2 paketą
apt:
vardas: apache2
būsena: vėliausia
- vardas: Įsitikinkite, kad veikia apache2 paslauga
paslauga:
vardas: apache2
būsena: prasidėjo
įjungta: tiesa
- pavadinimas: Kopijuoti rodyklę.HTML failą į serverį
kopija:
src:… / failai / rodyklė.HTML
dest: / var / www / html / index.HTML
režimas: 0644
savininkas: www-data
grupė: www duomenys
Čia aš naudoju komandą tapti: Tiesa liepti Ansible paleisti šią grojaraštį su sudo teisėmis. Baigę šį veiksmą, išsaugokite askpass2.yaml failą paspausdami
Sukurkite indeksas.HTML failą failai / katalogą:
$ nano failai / rodyklė.HTML
Įveskite šiuos HTML kodus į indeksas.HTML failas:
Labas pasauli
Tai veikia
Baigę šį veiksmą, išsaugokite failą paspausdami
Galite paleisti askpass2.yaml pjesė su -klausti-perduoti parinktį taip:
$ ansible-playbook - „ask-pass playbooks“ / „askpass2“.yaml
Tada, kaip ir anksčiau, jūsų bus paprašyta įvesti SSH slaptažodį.
„Playbook“ vis tiek gali neveikti, net jei pateikiate SSH slaptažodį. To priežastis yra ta, kad jūs turite pasakyti „Ansible“ prašyti sudo slaptažodžio ir SSH slaptažodžio.
Galite pasakyti „Ansible“ paprašyti sudo slaptažodžio naudodami -klausti-tapti-praeiti parinktį paleisdami grojaraštį taip:
$ ansible-playbook --ask-pass - ask-tapti-pass grojaraščiai / askpass2.yaml
Dabar „Ansible“ paprašys įvesti SSH slaptažodį.
Tada „Ansible“ paprašys sudo slaptažodžio. Jei jūsų sudo slaptažodis sutampa su SSH slaptažodžiu (tai greičiausiai), palikite jį tuščią ir paspauskite
Kaip matote, pjesė sėkmingai paleista.
Automatinio SSH prisijungimo ir sudo slaptažodžio prisijungimo konfigūravimas
Galbūt norėsite naudoti slaptažodžiu pagrįstą SSH ir „sudo“ prisijungimą, bet nenorite įvesti SSH slaptažodžio ir sudo slaptažodžio kiekvieną kartą paleidę grojaraštį. Jei taip yra, tada šis skyrius skirtas jums.
Jei norite naudoti slaptažodžiu pagrįstą SSH prisijungimą ir „sudo“ prisijungimą be raginimo įvesti slaptažodžius, tereikia pridėti ansible_ssh_pass ir ansible_become_pass pagrindinio kompiuterio kintamieji arba grupės kintamieji jūsų inventoriaus faile.
Pirmiausia atidarykite šeimininkai atsargų byla taip:
$ nano šeimininkai
Jei jūsų inventoriaus faile yra keli pagrindiniai kompiuteriai ir kiekvienas iš jų turi skirtingus slaptažodžius, pridėkite ansible_ssh_pass ir ansible_become_pass kintamieji kaip pagrindinio kompiuterio kintamieji (po kiekvieno pagrindinio kompiuterio) taip.
Būtinai pakeiskite paslaptis su savo SSH ir sudo slaptažodžiu.
Jei visi arba kai kurie pagrindiniai kompiuteriai turi tą patį slaptažodį, galite pridėti ansible_ssh_pass ir ansible_become_pass kintamieji kaip grupės kintamieji, kaip parodyta toliau pateiktame pavyzdyje.
Čia aš turiu tik vieną pagrindinį kompiuterį, todėl pridėjau ansible_ssh_pass ir ansible_become_pass kintamieji visi grupė (visi kompiuteriai inventoriaus byloje). Bet jūs galite pridėti šiuos kintamuosius ir kitoms konkrečioms grupėms.
Kai baigsite pridėti ansible_ssh_pass ir ansible_become_pass kintamieji šeimininkai inventoriaus failą, išsaugokite šeimininkai inventoriaus failą paspausdami
Dabar galite paleisti askpass2.yaml pjesė:
$ ansible-playbook playbooks / askpass2.yaml
Kaip matote, „playbook“ buvo sėkmingai paleista, nors ji neprašė nei SSH, nei „sudo“ slaptažodžio.
Taigi, taip jūs naudojatės sshpass slaptažodžiu pagrįstam SSH ir „sudo“ prisijungimui prie „Ansible“. Dėkojame, kad perskaitėte šį straipsnį!