Šiame straipsnyje bus parodyta, kaip įdiegti kelis programinės įrangos paketus „CentOS / RHEL“ kompiuteriuose, naudojant „Ansible loop“. Taigi, pradėkime.
Būtinos sąlygos
Jei norite išbandyti šio straipsnio pavyzdžius,
1) Savo kompiuteryje turite būti įdiegę „Ansible“.
2) Jūs turite turėti bent „CentOS / RHEL 7“ arba „8“ pagrindinį kompiuterį, sukonfigūruotą „Ansible Automation“.
„LinuxHint“ yra daug straipsnių, skirtų „Ansible“ diegimui ir kompiuterių konfigūravimui „Ansible“ automatizavimui. Jei reikia, galite tai patikrinti.
Projektų katalogo nustatymas
Prieš judėdami toliau, sukursime projekto katalogą, kad viskas būtų šiek tiek sutvarkyta.
Norėdami sukurti projekto katalogą cento-pkg / ir visus reikalingus pakatalogius (dabartiniame darbo kataloge), vykdykite šią komandą:
$ mkdir -pv centos-pkg / grojaraščiai
Sukūrę projekto katalogą, eikite į projekto katalogą taip:
$ cd cento-pkg /
Tada sukurkite šeimininkai atsargų byla taip:
$ nano šeimininkai
Pridėti pagrindinio kompiuterio IP arba DNS pavadinimą (vm3.nodekitas.com, mano atveju) jūsų „CentOS / RHEL“ kompiuteriai inventoriaus byloje (po vieną pagrindinį kompiuterį eilutėje).
Baigę išsaugokite failą paspausdami
Sukurkite Ansible konfigūracijos failą įmanoma.plg savo projekto kataloge taip:
$ nano galima.plg
Tada įveskite šias eilutes įmanoma.plg failą.
[pagal nutylėjimą]inventorius = šeimininkai
host_key_checking = Netiesa
Kai baigsite, išsaugokite įmanoma.plg failą paspausdami
Pabandykite pinguoti visus „CentOS / RHEL“ kompiuterius, kuriuos pridėjote šeimininkai atsargų byla taip:
$ ansible all -u ansible -m ping
Kaip matote, mano „CentOS 8“ kompiuteris yra prieinamas.
Vieno programinės įrangos paketo diegimas
Šiame skyriuje bus parodyta, kaip įdiegti vieną programinės įrangos paketą naudojant dnf arba yum modulio „Ansible“ jūsų CentOS / RHEL kompiuteriuose.
Pirmiausia sukurkite naują pjesę install_package.yaml viduje konors grojaraščiai / katalogą:
„$ nano“ grojaraščiai / install_package.yaml
Tada įveskite šias eilutes install_package.yaml failą.
- šeimininkai: visivartotojas: ansible
tapti: Tiesa
užduotys:
- pavadinimas: įdiekite „httpd“ paketą
DNF:
pavadinimas: httpd
būsena: dabartis
„update_cache“: tiesa
Baigę išsaugokite failą paspausdami
Čia pridėjau tik vieną užduotį, Įdiekite „httpd“ paketą. Šios užduoties tikslas yra įdiegti httpd paketas CentOS / RHEL 8.
CentOS / RHEL 7 nenaudoja dnf paketų tvarkyklė, ji naudoja yum paketų tvarkyklė. Taigi, jei naudojate „CentOS / RHEL 7“, pakeiskite dnf į yum, kaip pažymėta toliau pateiktoje ekrano kopijoje. Jokių kitų pakeitimų nereikia.
The vardas parinktis naudojama norint pasakyti dnf arba yum modulio paketo, kurį bandote įdiegti, pavadinimą. Šiuo atveju tai bus httpd pakuotė.
The valstija parinktis naudojama norint pasakyti dnf arba yum moduliuoti veiksmą (t.e. įdiekite, atnaujinkite, pašalinkite) jis turėtų prisiimti nurodytą paketą. Šiuo atveju veiksmas yra pateikti.
Palaikomos valstija yra:
pateikti - įdiegs paketą, jei dar neįdiegtas.
vėliausiai - įdiegs paketą, jei dar neįdiegtas; jei modulis jau įdiegtas, jis tikrins, ar nėra naujinių; jei yra atnaujinta paketo versija, ji įdiegs naują versiją.
nėra - pašalins paketą, jei jis bus įdiegtas.
Jei update_cache parinktis nustatyta į Tiesa, DNF / YUM paketo saugyklos talpykla bus atnaujinta prieš diegiant paketą.
Paleiskite install_package.yaml pjesė:
$ ansible-playbook playbooks / install_package.yaml
Kaip matote, pjesių knygelė install_package.yaml bėgo sėkmingai.
Kaip matote, httpd paketas yra įdiegtas mano „CentOS 8“ pagrindiniame kompiuteryje, kurį pridėjau savo šeimininkai inventoriaus byla.
Įdiegtas $ sudo dnf sąrašas | grep httpd
Jei naudojatės „CentOS / RHEL 7“, naudokite yum paketo tvarkyklė vietoj dnf paketų tvarkyklę, kad patikrintumėte, ar paketas įdiegtas.
Įdiegtas „$ sudo yum“ sąrašas grep httpd
Kelių programinės įrangos paketų diegimas naudojant „with_items“ kilpą
Ankstesniame šio straipsnio skyriuje buvo parodyta, kaip įdiegti vieną programinės įrangos paketą savo „CentOS / RHEL“ pagrindiniame kompiuteryje naudojant „Ansible“ dnf/yum modulis. Šiame skyriuje bus parodyta, kaip įdiegti kelis programinės įrangos paketus savo „CentOS / RHEL“ kompiuteriuose naudodami „Ansible“ with_items kilpa.
Pirmiausia sukurkite naują pjesę install_packages.yaml, taip:
$ nano grojaraščiai / install_packages.yaml
Įveskite šias eilutes install_packages.yaml failą.
- šeimininkai: visivartotojas: ansible
tapti: Tiesa
užduotys:
- pavadinimas: įdiekite visus paketus
DNF:
pavadinimas: „item“
būsena: dabartis
„update_cache“: tiesa
with_items:
httpd
php
vsftpd
Baigę paspauskite
Čia aš apibrėžiau paketų pavadinimus (httpd, php, vsftpd), kurį noriu įdiegti with_items kilpa.
Pakeičiau paketo pavadinimą kintamuoju elementą. The elementą kintamasis bus atnaujintas paketo pavadinimu kiekvienoje iteracijoje.
Paleiskite install_packages.yaml pjesė:
$ ansible-playbook playbooks / install_packages.yaml
Kaip matote, pjesių knygelė install_packages.yaml bėgo sėkmingai.
The httpd, php, ir vsftpd paketai yra įdiegti mano „CentOS 8“ pagrindiniame kompiuteryje, kaip matote toliau pateiktoje ekrano kopijoje.
Įdiegtas $ sudo dnf sąrašas | grep httpdĮdiegtas $ sudo dnf sąrašas | grep php
Įdiegtas $ sudo dnf sąrašas | grep vsftpd
Kelių programinės įrangos paketų diegimas naudojant ciklo kilpą
Pradedant nuo „Ansible 2“.5, rekomenduojamas būdas naudoti kilpas savo grojaraštyje yra naudojant kilpa raktinis žodis, o ne with_items raktinis žodis. Štai kodėl pamatėte įspėjamąjį pranešimą, kai paleidžiau install_packages.yaml pjesė ankstesniame šio straipsnio skyriuje.
Darbas su kilpomis naudojant kilpa raktinis žodis yra labai lengvas.
Pirmiausia atidarykite pjesę install_packages.yaml (iš ankstesnio pavyzdžio) taip:
$ nano grojaraščiai / install_packages.yaml
Viduje konors install_packages.yaml pjesė, tiesiog pakeiskite terminą with_items su terminu kilpa, kaip pažymėta toliau pateiktoje ekrano kopijoje. Daugiau nieko keisti nereikia.
Baigę paspauskite
Paleiskite install_packages.yaml pjesė:
$ ansible-playbook playbooks / install_packages.yaml
Kaip matote, užduotis Įdiekite visus paketus paleido dnf/yum modulis iš viso tris kartus; po vieną kiekvienai kilpai elementą.
The httpd, php, ir vsftpd paketai yra įdiegti mano „CentOS 8“ pagrindiniame kompiuteryje, kaip matote toliau pateiktoje ekrano kopijoje.
Įdiegtas $ sudo dnf sąrašas | grep httpdĮdiegtas $ sudo dnf sąrašas | grep php
Įdiegtas $ sudo dnf sąrašas | grep vsftpd
Kelių programinės įrangos paketų diegimas naudojant masyvo sintaksę
Ankstesniuose šio straipsnio skyriuose buvo parodyta, kaip naudoti with_items ir kilpa kilpos. Galima įdiegti kelis programinės įrangos paketus „CentOS / RHEL 7“ arba „8“, nekartojant kodo. Šiame skyriuje bus parodyta, kaip tą patį padaryti naudojant paprastesnę masyvo sintaksę.
Pirmiausia atidarykite install_packages.yaml pjesė:
$ nano grojaraščiai / install_packages.yaml
Pasalinti with_items arba kilpa skyrių nuo užduoties ir pakeiskite vardas galimybė ['httpd', 'php', vsftpd '], kaip pažymėta toliau pateiktoje ekrano kopijoje.
Baigę paspauskite
Čia kiekviena cituojama eilutė laužtiniuose skliaustuose ([]) yra masyvo elementas (mano atveju programinės įrangos paketo pavadinimas). Kiekvienas masyvo elementas turėtų būti atskirtas kableliu (,). Galite pridėti tiek masyvo elementų, kiek norėtumėte. Aš pridėjau tik tris elementus, httpd, php, ir vsftpd.
Paleiskite install_packages.yaml pjesė:
$ ansible-playbook playbooks / install_packages.yaml
Kaip matote, programinės įrangos paketai httpd, php, ir vsftpd yra įdiegti mano „CentOS 8“ pagrindiniame kompiuteryje.
Įdiegtas $ sudo dnf sąrašas | grep httpdĮdiegtas $ sudo dnf sąrašas | grep php
Įdiegtas $ sudo dnf sąrašas | grep vsftpd
Išvada
Šis straipsnis parodė, kaip naudoti with_items ir kilpa kilpos, taip pat masyvo sintaksė su Ansible yum/dnf modulį, kad įdiegtumėte kelis programinės įrangos paketus savo „CentOS / RHEL 7“ arba „8“ kompiuteriuose.
Norėdami gauti daugiau informacijos, patikrinkite galimą oficialų dokumentą.
[1] Oficialus „Ansible loops“ dokumentas
[2] Oficiali „Ansible with_items“ dokumentacija
[3] Oficialūs „Ansible dnf“ modulio dokumentai
[4] Oficialūs „Ansible yum“ modulio dokumentai