Ez a cikk bemutatja, hogyan lehet több szoftvercsomagot telepíteni a CentOS / RHEL gazdagépekre az Ansible loop segítségével. Tehát kezdjük.
Előfeltételek
Ha ki szeretné próbálni a cikk példáit,
1) A számítógépére telepítve kell lennie az Ansible programnak.
2) Legalább egy CentOS / RHEL 7 vagy 8 gazdagéppel kell rendelkeznie az Ansible automatizáláshoz.
A LinuxHint-en számos cikk foglalkozik az Ansible telepítésével és a gazdagépek konfigurálásával az Ansible automatizáláshoz. Szükség esetén megnézheti ezeket.
Projektkönyvtár beállítása
Mielőtt továbblépne, létrehozunk egy projekt könyvtárat, csak azért, hogy a dolgokat egy kicsit rendben tartsuk.
A projekt könyvtár létrehozása centos-pkg / és az összes szükséges alkönyvtárat (az aktuális munkakönyvtárban), futtassa a következő parancsot:
$ mkdir -pv centos-pkg / playbooks
A projektkönyvtár létrehozása után lépjen a projektkönyvtárba az alábbiak szerint:
$ cd centos-pkg /
Ezután hozzon létre egy otthont ad leltárállomány, az alábbiak szerint:
$ nano házigazdák
Adja hozzá a gazdagép IP vagy DNS nevét (vm3.nodekite.com, az én esetemben) a CentOS / RHEL hosztokról a készletfájlban (soronként egy hoszt).
Ha végzett, mentse a fájlt a gombbal
Hozzon létre egy Ansible konfigurációs fájlt lehetséges.vö a projektkönyvtárban, az alábbiak szerint:
$ nano ansible.vö
Ezután írja be a következő sorokat a lehetséges.vö fájl.
[alapértelmezések]leltár = hosztok
host_key_checking = Hamis
Ha elkészült, mentse a lehetséges.vö fájl megnyomásával
Próbálja meg pingelni az összes CentOS / RHEL állomást, amelyet hozzáadott a otthont ad leltárállomány, az alábbiak szerint:
$ ansible all -u ansible -m ping
Amint láthatja, a CentOS 8 gazdagépem elérhető.
Egyetlen szoftvercsomag telepítése
Ez a szakasz bemutatja, hogyan lehet egyetlen szoftvercsomagot telepíteni a dnf vagy yum modul az Ansible a CentOS / RHEL hosztokon.
Először hozza létre az új játékkönyvet install_package.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:
$ nano playbooks / install_package.yaml
Ezután írja be a következő sorokat a install_package.yaml fájl.
- házigazdák: mindfelhasználó: ansible
vált: Igaz
feladatok:
- név: Telepítse a httpd csomagot
dnf:
név: httpd
állapot: jelen
update_cache: Igaz
Ha végzett, mentse a fájlt a gombbal
Itt csak egy feladatot adtam hozzá, Telepítse a httpd csomagot. Ennek a feladatnak a célja a httpd csomag a CentOS / RHEL 8-on.
A CentOS / RHEL 7 nem használja a dnf csomagkezelő, a yum csomagkezelő. Tehát, ha CentOS / RHEL 7-et használ, változtassa meg dnf nak nek yum, az alábbi képernyőképen jelölt módon. Nincs szükség egyéb változtatásokra.
A név opcióval a dnf vagy yum modul a telepíteni kívánt csomag nevét. Ebben az esetben ez lesz a httpd csomag.
A állapot opcióval a dnf vagy yum modulálja a műveletet (i.e. telepíteni, frissíteni, eltávolítani) az adott csomagra kell, hogy kerüljön. Ebben az esetben a cselekvés az ajándék.
A. Támogatott értékei állapot lehetőségek:
ajándék - telepíti a csomagot, ha még nincs telepítve.
legújabb - telepíti a csomagot, ha még nincs telepítve; ha már telepítve van, akkor a modul ellenőrzi a frissítéseket; ha elérhető a csomag frissített verziója, akkor telepíti az új verziót.
hiányzó - eltávolítja a csomagot, ha telepítve van.
Ha a update_cache opció értéke Igaz, a DNF / YUM csomagtárház gyorsítótárát a csomag telepítése előtt frissítjük.
Futtassa a install_package.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_package.yaml
Mint látható, a játékkönyv install_package.yaml sikeresen futott.
Mint láthatja, a httpd csomag telepítve van a CentOS 8 gazdagépemre, amelyet hozzáadtam a sajátomhoz otthont ad leltárfájl.
$ sudo dnf lista telepítve | grep httpd
Ha CentOS / RHEL 7-en van, használja a yum csomagkezelő a dnf csomagkezelő a csomag telepítésének ellenőrzéséhez.
$ sudo yum lista telepítve | grep httpd
Több szoftvercsomag telepítése a with_items hurok használatával
A cikk előző szakasza bemutatta, hogyan lehet egyetlen szoftvercsomagot telepíteni a CentOS / RHEL gazdagépre az Ansible segítségével dnf/yum modul. Ez a szakasz bemutatja, hogyan lehet több szoftvercsomagot telepíteni a CentOS / RHEL gépekre az Ansible segítségével with_items hurok.
Először hozza létre az új játékkönyvet install_packages.yaml, alábbiak szerint:
$ nano playbooks / install_packages.yaml
Írja be a következő sorokat a install_packages.yaml fájl.
- házigazdák: mindfelhasználó: ansible
vált: Igaz
feladatok:
- név: Telepítse az összes csomagot
dnf:
név: 'item'
állapot: jelen
update_cache: Igaz
with_items:
httpd
php
vsftpd
Ha végzett, nyomja meg a gombot
Itt definiáltam a csomagneveket (httpd, php, vsftpd), amelyet használni szeretnék with_items hurok.
A csomag nevét lecseréltem a változóra tétel. A tétel változó minden egyes iterációban frissül a csomag nevével.
Futtassa a install_packages.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_packages.yaml
Mint látható, a játékkönyv install_packages.yaml sikeresen futott.
A httpd, php, és vsftpd csomagok vannak telepítve a CentOS 8 gazdagépemre, amint az az alábbi képernyőképen is látható.
$ sudo dnf lista telepítve | grep httpd$ sudo dnf lista telepítve | grep php
$ sudo dnf lista telepítve | grep vsftpd
Több szoftvercsomag telepítése a hurokhurok használatával
Az Ansible 2-től indulva.5, a hurkok használatának ajánlott módja a játékkönyvben a hurok kulcsszó helyett with_items kulcsszó. Ezért látott egy figyelmeztető üzenetet, amikor a install_packages.yaml játékkönyv a cikk korábbi szakaszában.
Hurkokkal való munka a hurok kulcsszó nagyon egyszerű.
Először nyissa meg a játékkönyvet install_packages.yaml (az előző példából), az alábbiak szerint:
$ nano playbooks / install_packages.yaml
Ban,-ben install_packages.yaml játékkönyv, csak cserélje le a kifejezést with_items kifejezéssel hurok, az alábbi képernyőképen jelölt módon. Nem kell mást változtatnia.
Ha végzett, nyomja meg a gombot
Futtassa a install_packages.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_packages.yaml
Mint láthatja, a feladat Telepítse az összes csomagot futott a dnf/yum modul összesen háromszor; minden hurokhoz egyszer tétel.
A httpd, php, és vsftpd csomagok vannak telepítve a CentOS 8 gazdagépemre, amint az az alábbi képernyőképen is látható.
$ sudo dnf lista telepítve | grep httpd$ sudo dnf lista telepítve | grep php
$ sudo dnf lista telepítve | grep vsftpd
Több szoftvercsomag telepítése az Array Syntax segítségével
A cikk korábbi szakaszai bemutatták, hogyan kell használni a with_items és hurok hurkok in Lehetséges több szoftvercsomag telepítése a CentOS / RHEL 7-re vagy 8-ra, minden kódismétlés nélkül. Ez a szakasz bemutatja, hogyan lehet ugyanezt tenni egy egyszerűbb tömbszintaxissal.
Először nyissa meg a install_packages.yaml játékkönyv, az alábbiak szerint:
$ nano playbooks / install_packages.yaml
Távolítsa el a with_items vagy hurok szakasz a feladattól, és módosítsa a név opció ['httpd', 'php', vsftpd '], az alábbi képernyőképen jelölt módon.
Ha végzett, nyomja meg a gombot
Itt minden idézett karakterlánc a szögletes zárójelben ([]) egy tömb elem (esetemben a szoftvercsomag neve). Minden tömb elemet vesszővel kell elválasztani (,). Annyi tömb elemet adhat hozzá, amennyit csak akar. Csak három elemet adtam hozzá, httpd, php, és vsftpd.
Futtassa a install_packages.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_packages.yaml
Mint látható, a szoftvercsomagok httpd, php, és vsftpd telepítve vannak a CentOS 8 gazdagépemen.
$ sudo dnf lista telepítve | grep httpd$ sudo dnf lista telepítve | grep php
$ sudo dnf lista telepítve | grep vsftpd
Következtetés
Ez a cikk bemutatta, hogyan kell használni a with_items és hurok hurkok, valamint a tömb szintaxisa az Ansible-vel yum/dnf modul több szoftvercsomag telepítésére a CentOS / RHEL 7 vagy 8 gépekre.
További információ az Ansible hivatalos dokumentációjában található.
[1] Az Ansible hurkok hivatalos dokumentációja
[2] Az Ansible with_items hivatalos dokumentációja
[3] Az Ansible dnf modul hivatalos dokumentációja
[4] Az Ansible yum modul hivatalos dokumentációja