Tento článok vám ukáže, ako nainštalovať viac softvérových balíkov na hostiteľov CentOS / RHEL pomocou slučky Ansible. Takže poďme na to.
Predpoklady
Ak si chcete vyskúšať príklady v tomto článku,
1) Musíte mať v počítači nainštalovaný program Ansible.
2) Musíte mať aspoň hostiteľa CentOS / RHEL 7 alebo 8 nakonfigurovaného pre automatizáciu Ansible.
Existuje veľa článkov o LinuxHint venovaných inštalácii Ansible a konfigurácii hostiteľov pre automatizáciu Ansible. V prípade potreby ich môžete skontrolovať.
Nastavenie adresára projektu
Predtým, ako sa posunieme ďalej, vytvoríme adresár projektu, aby sme mali trochu poriadok.
Vytvorenie adresára projektu centos-kg / a všetky požadované podadresáre (vo vašom aktuálnom pracovnom adresári), spustite nasledujúci príkaz:
$ mkdir -pv centos-pkg / príručky
Po vytvorení adresára projektu prejdite do adresára projektu takto:
$ cd centos-pkg /
Ďalej vytvorte a hostitelia inventárny súbor, a to nasledovne:
$ nano hostitelia
Pridajte adresu IP alebo DNS hostiteľa (vm3.nodekite.com, v mojom prípade) vašich hostiteľov CentOS / RHEL v súbore inventára (jeden hostiteľ na riadok).
Po dokončení uložte súbor stlačením
Vytvorte konfiguračný súbor Ansible zodpovedné.porov v adresári projektu takto:
$ nano zodpovedné.porov
Potom zadajte nasledujúce riadky do zodpovedné.porov spis.
[predvolené hodnoty]inventár = hostitelia
host_key_checking = False
Po dokončení uložte súbor zodpovedné.porov súbor stlačením
Skúste ping na všetkých hostiteľov CentOS / RHEL, ktorých ste si pridali do svojho hostitelia inventárny súbor, a to nasledovne:
$ ansible všetko -u ansible -m ping
Ako vidíte, môj hostiteľ CentOS 8 je prístupný.
Inštalácia jedného softvérového balíka
Táto časť vám ukáže, ako nainštalovať jeden softvérový balík pomocou dnf alebo mňam modul Ansible na vašich hostiteľoch CentOS / RHEL.
Najskôr vytvorte nový playbook install_package.yaml v knihy o hre / adresár takto:
$ nano playbooks / install_package.yaml
Ďalej zadajte nasledujúce riadky do poľa install_package.yaml spis.
- hostitelia: všetciužívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Inštalácia balíka httpd
dnf:
meno: httpd
stav: prítomný
update_cache: Pravda
Po dokončení uložte súbor stlačením
Tu som pridal iba jednu úlohu, Nainštalujte si balíček httpd. Účelom tejto úlohy je inštalácia httpd balíček na CentOS / RHEL 8.
CentOS / RHEL 7 nepoužíva dnf správca balíkov, používa mňam správca balíkov. Pokiaľ teda používate CentOS / RHEL 7, zmeňte sa dnf do mňam, ako je vyznačené na snímke obrazovky nižšie. Nie sú potrebné žiadne ďalšie zmeny.
The názov Táto možnosť sa používa na zistenie dnf alebo mňam modul názov balíka, ktorý sa pokúšate nainštalovať. V tomto prípade to bude httpd balíček.
The štát Táto možnosť sa používa na zistenie dnf alebo mňam modulujte akciu (t.j.e. nainštalovať, aktualizovať, odstrániť) by mal prevziať daný balík. V tomto prípade je akcia prítomný.
Podporované hodnoty štát možnosti sú:
prítomný - nainštaluje balík, ak ešte nie je nainštalovaný.
najnovšie - nainštaluje balík, ak ešte nie je nainštalovaný; ak je už nainštalovaný, modul skontroluje dostupnosť aktualizácií; ak je k dispozícii aktualizovaná verzia balíka, nainštaluje sa nová verzia.
neprítomný - odstráni balík, ak je nainštalovaný.
Ak update_cache možnosť je nastavená na Pravdaže, vyrovnávacia pamäť úložiska balíkov DNF / YUM sa aktualizuje pred inštaláciou balíka.
Spustiť install_package.yaml príručky, a to nasledovne:
$ ansible-playbook playbooks / install_package.yaml
Ako vidíte, príručka install_package.yaml prebehol úspešne.
Ako vidíte, httpd balík je nainštalovaný na mojom hostiteľovi CentOS 8, ktorý som pridal na svoj server hostitelia inventárny súbor.
$ sudo dnf zoznam nainštalovaný grep httpd
Ak ste na CentOS / RHEL 7, použite mňam správca balíkov namiesto dnf správca balíkov na overenie, či je balík nainštalovaný.
$ sudo yum zoznam nainštalovaný grep httpd
Inštalácia viacerých softvérových balíkov pomocou slučky with_items
Predchádzajúca časť tohto článku vám ukázala, ako nainštalovať jeden softvérový balík na hostiteľa CentOS / RHEL pomocou aplikácie Ansible dnf/mňam modul. Táto časť vám ukáže, ako nainštalovať viac softvérových balíkov na hostiteľov CentOS / RHEL pomocou aplikácie Ansible s_položkami slučka.
Najskôr vytvorte nový playbook install_packages.yaml, nasledovne:
$ nano playbooks / install_packages.yaml
Zadajte nasledujúce riadky do install_packages.yaml spis.
- hostitelia: všetciužívateľ: zodpovedný
stať sa: Pravda
úlohy:
- name: Inštalácia všetkých balíkov
dnf:
meno: 'item'
stav: prítomný
update_cache: Pravda
with_items:
httpd
php
vsftpd
Po dokončení stlačte
Tu som definoval názvy balíkov (httpd, php, vsftpd), ktorú chcem nainštalovať pomocou s_položkami slučka.
Názov balíka som nahradil premennou položka. The položka premenná bude aktualizovaná s názvom balíka v každej iterácii.
Spustiť install_packages.yaml príručky, a to nasledovne:
$ ansible-playbook playbooks / install_packages.yaml
Ako vidíte, príručka install_packages.yaml prebehol úspešne.
The httpd, php, a vsftpd balíčky sú nainštalované na mojom hostiteľovi CentOS 8, ako vidíte na snímke obrazovky nižšie.
$ sudo dnf zoznam nainštalovaný grep httpd$ sudo dnf zoznam nainštalovaný grep php
$ sudo dnf zoznam nainštalovaný grep vsftpd
Inštalácia viacerých softvérových balíkov pomocou slučkovej slučky
Počnúc možným 2.5, odporúčaný spôsob použitia slučiek v príručke je použitie slučka kľúčové slovo, namiesto s_ položkami kľúčové slovo. Preto som videl varovnú správu, keď som spustil install_packages.yaml príručky v predchádzajúcej časti tohto článku.
Práca so slučkami pomocou slučka kľúčové slovo je veľmi jednoduché.
Najskôr otvorte príručku install_packages.yaml (z predchádzajúceho príkladu):
$ nano playbooks / install_packages.yaml
V install_packages.yaml playbook, stačí nahradiť tento výraz s_položkami s pojmom slučka, ako je vyznačené na snímke obrazovky nižšie. Nemusíte nič meniť.
Po dokončení stlačte
Spustiť install_packages.yaml príručky, a to nasledovne:
$ ansible-playbook playbooks / install_packages.yaml
Ako vidíte, úloha Nainštalujte všetky balíčky bežal dnf/mňam modul celkovo trikrát; raz za každú slučku položka.
The httpd, php, a vsftpd balíčky sú nainštalované na mojom hostiteľovi CentOS 8, ako vidíte na snímke obrazovky nižšie.
$ sudo dnf zoznam nainštalovaný grep httpd$ sudo dnf zoznam nainštalovaný grep php
$ sudo dnf zoznam nainštalovaný grep vsftpd
Inštalácia viacerých softvérových balíkov pomocou syntaxe poľa
Predchádzajúce časti tohto článku vám ukázali, ako používať s_položkami a slučka slučky Ansible pre inštaláciu viacerých softvérových balíkov na CentOS / RHEL 7 alebo 8 bez opakovania kódu. Táto časť vám ukáže, ako robiť to isté s jednoduchšou syntaxou poľa.
Najskôr otvorte install_packages.yaml príručky, a to nasledovne:
$ nano playbooks / install_packages.yaml
Odstrániť s_položkami alebo slučka oddiel od úlohy a zmeniť názov možnosť ['httpd', 'php', vsftpd '], ako je vyznačené na snímke obrazovky nižšie.
Po dokončení stlačte
Tu každý uvedený reťazec v hranatých zátvorkách ([]) je prvok poľa (v mojom prípade názov softvérového balíka). Každý prvok poľa by mal byť oddelený čiarkou (,). Môžete pridať toľko prvkov poľa, koľko chcete. Pridal som iba tri prvky, httpd, php, a vsftpd.
Spustiť install_packages.yaml príručky, a to nasledovne:
$ ansible-playbook playbooks / install_packages.yaml
Ako vidíte, softvérové balíčky httpd, php, a vsftpd sú nainštalované na mojom hostiteľovi CentOS 8.
$ sudo dnf zoznam nainštalovaný grep httpd$ sudo dnf zoznam nainštalovaný grep php
$ sudo dnf zoznam nainštalovaný grep vsftpd
Záver
Tento článok vám ukázal, ako používať s_ položkami a slučka slučky, rovnako ako syntax poľa, s Ansible mňam/dnf modul na inštaláciu viacerých softvérových balíkov na hostiteľov CentOS / RHEL 7 alebo 8.
Ďalšie informácie nájdete v oficiálnej dokumentácii programu Ansible.
[1] Oficiálna dokumentácia slučiek Ansible
[2] Oficiálna dokumentácia Ansible with_items
[3] Oficiálna dokumentácia modulu Ansible dnf
[4] Oficiálna dokumentácia modulu Ansible yum