See artikkel näitab teile, kuidas installida mitu tarkvarapaketti CentOS / RHEL-i hostidele, kasutades Ansible loopi. Alustame siis.
Eeldused
Kui soovite proovida selles artiklis toodud näiteid,
1) Teie arvutisse peab olema installitud Ansible.
2) Teil peab olema vähemalt CentOS / RHEL 7 või 8 host, mis on konfigureeritud Ansible automatiseerimiseks.
LinuxHintis on palju artikleid, mis on pühendatud Ansible'i installimisele ja hostide konfigureerimisele Ansible'i automatiseerimiseks. Vajadusel võite neid vaadata.
Projektikataloogi seadistamine
Enne edasiliikumist loome projekti kataloogi, et asju natuke korrastada.
Projektikataloogi loomiseks senti-pkg / ja kõik vajalikud alamkataloogid (teie praeguses töökataloogis), käivitage järgmine käsk:
$ mkdir -pv sentos-pkg / playbooks
Kui projekti kataloog on loodud, navigeerige projekti kataloogi järgmiselt:
$ cd senti-pkg /
Järgmisena looge a võõrustajad varude toimik järgmiselt:
$ nano hostid
Lisage hosti IP või DNS-i nimi (vm3.nodekite.com, minu puhul) teie CentOS / RHEL-i hostidest inventeerimisfailis (üks host rea kohta).
Kui olete lõpetanud, salvestage fail, vajutades
Looge Ansible konfiguratsioonifail võimalik.vrd oma projekti kataloogis järgmiselt:
$ nano on võimalik.vrd
Seejärel tippige väljale järgmised read võimalik.vrd faili.
[vaikimisi]inventar = hostid
host_key_checking = Vale
Kui olete valmis, salvestage võimalik.vrd faili vajutades
Proovige pingida kõiki CentOS / RHEL-i hoste, mille olete oma kausta lisanud võõrustajad varude toimik järgmiselt:
$ ansible all -u ansible -m ping
Nagu näete, on minu CentOS 8 host juurdepääsetav.
Ühe tarkvarapaketi installimine
See jaotis näitab, kuidas installida üks tarkvarapakett, kasutades dnf või yum teie CentOS / RHEL-i hostide mooduli Ansible.
Kõigepealt looge uus mänguraamat install_package.yaml aastal mänguraamatud / kataloogi järgmiselt:
Esitusraamatud $ nano / install_package.yaml
Järgmisena sisestage järgmised read install_pakett.yaml faili.
- võõrustajad: kõikkasutaja: ansible
muutunud: Tõsi
ülesanded:
- nimi: installige pakett httpd
dnf:
nimi: httpd
olek: kohal
update_cache: Tõsi
Kui olete lõpetanud, salvestage fail, vajutades
Siia olen lisanud ainult ühe ülesande, Installige pakett httpd. Selle ülesande eesmärk on installida httpd pakett CentOS / RHEL 8-l.
CentOS / RHEL 7 ei kasuta dnf paketihaldur kasutab seda yum paketihaldur. Seega, kui kasutate CentOS / RHEL 7, muutke dnf kuni yum, nagu on märgitud alloleval ekraanipildil. Muud muudatused pole vajalikud.
The nimi valikut kasutatakse dnf või yum mooduli paketi nimi, mida proovite installida. Sel juhul on see httpd pakend.
The riik valikut kasutatakse dnf või yum moodulit (s.e. installida, uuendada, eemaldada) see peaks antud paketi võtma. Sel juhul on tegevus kohal.
Toetatud väärtused riik võimalused on:
kohal - installib paketi, kui see pole veel installitud.
hiljemalt - installib paketi, kui see pole veel installitud; kui see on juba installitud, kontrollib moodul värskendusi; kui paketi uuendatud versioon on saadaval, installib see uue versiooni.
puudub - eemaldab paketi, kui see on installitud.
Kui update_cache suvandiks on seatud Tõsi, DNF / YUM paketi hoidla vahemälu värskendatakse enne paketi installimist.
Käivitage install_pakett.yaml järgmine raamat:
$ ansible-playbook playbooks / install_package.yaml
Nagu näete, mänguraamat install_package.yaml jooksis edukalt.
Nagu näete, httpd pakett on installitud minu CentOS 8 hostile, mille olen oma võõrustajad varude toimik.
$ sudo dnf loend on installitud | grep httpd
Kui kasutate CentOS / RHEL 7, kasutage yum paketi haldur dnf paketihaldur, et kontrollida, kas pakett on installitud.
$ sudo yumi loend on installitud | grep httpd
Mitme tarkvarapaketi installimine aasaga with_items
Selle artikli eelmises osas näidati teile, kuidas installida üks tarkvarapakett oma CentOS / RHEL-i hostile rakenduse Ansible abil dnf/yum moodul. See jaotis näitab teile, kuidas installida CentOS / RHEL-i hostidesse mitu tarkvarapaketti, kasutades rakendust Ansible with_items silmus.
Kõigepealt looge uus mänguraamat install_packages.yaml, järgnevalt:
Esitusraamatud $ nano / install_packages.yaml
Tippige väljale järgmised read install_packages.yaml faili.
- võõrustajad: kõikkasutaja: ansible
muutunud: Tõsi
ülesanded:
- nimi: installige kõik paketid
dnf:
nimi: „item”
olek: kohal
update_cache: Tõsi
with_items:
httpd
php
vsftpd
Kui olete lõpetanud, vajutage
Siin olen määranud pakettide nimed (httpd, php, vsftpd), mille abil tahan installida with_items silmus.
Olen asendanud paketi nime muutujaga üksus. The üksus muutujat värskendatakse igas iteratsioonis paketi nimega.
Käivitage install_packages.yaml järgmine raamat:
$ ansible-playbook playbooks / install_packages.yaml
Nagu näete, mänguraamat install_packages.yaml jooksis edukalt.
The httpd, php, ja vsftpd paketid on installitud minu CentOS 8 hostile, nagu näete alloleval ekraanipildil.
$ sudo dnf loend on installitud | grep httpd$ sudo dnf loend on installitud | grep php
$ sudo dnf loend on installitud | grep vsftpd
Mitme tarkvarapaketi installimine loop Loopi abil
Alustades jaotisest Ansible 2.5, on mänguraamatus silmuste kasutamiseks soovitatav viis silmus märksõna asemel with_items märksõna. Sellepärast nägite hoiatussõnumit, kui ma käivitasin install_packages.yaml mänguraamat selle artikli eelmises osas.
Silmustega töötamine silmus märksõna on väga lihtne.
Esmalt avage mänguraamat install_packages.yaml (eelmisest näitest) järgmiselt:
Esitusraamatud $ nano / install_packages.yaml
Aastal install_packages.yaml mänguraamat, asendage lihtsalt termin with_items terminiga silmus, nagu on märgitud alloleval ekraanipildil. Teil pole vaja midagi muud muuta.
Kui olete lõpetanud, vajutage
Käivitage install_packages.yaml järgmine raamat:
$ ansible-playbook playbooks / install_packages.yaml
Nagu näete, ülesanne Installige kõik paketid jooksis dnf/yum moodul kokku kolm korda; üks kord iga silmuse jaoks üksus.
The httpd, php, ja vsftpd paketid on installitud minu CentOS 8 hostile, nagu näete alloleval ekraanipildil.
$ sudo dnf loend on installitud | grep httpd$ sudo dnf loend on installitud | grep php
$ sudo dnf loend on installitud | grep vsftpd
Mitu tarkvarapaketti installimine massiivi süntaksiga
Selle artikli varasemates osades on näidatud, kuidas with_items ja silmus silmused sisse Võimalik installida CentOS / RHEL 7 või 8-le mitu tarkvarapaketti, ilma et kood korduks. See jaotis näitab teile, kuidas sama teha lihtsama massiivi süntaksiga.
Esiteks avage install_packages.yaml järgmine raamat:
Esitusraamatud $ nano / install_packages.yaml
Eemalda with_items või silmus jaotis ülesandest ja muutke nimi võimalus ['httpd', 'php', vsftpd '], nagu on märgitud alloleval ekraanipildil.
Kui olete lõpetanud, vajutage
Iga tsiteeritud string nurksulgudes ([]) on massiivi element (minu puhul tarkvarapaketi nimi). Iga massiivi element tuleks eraldada komaga (,). Saate lisada nii palju massiivi elemente kui soovite. Olen lisanud ainult kolm elementi, httpd, php, ja vsftpd.
Käivitage install_packages.yaml järgmine raamat:
$ ansible-playbook playbooks / install_packages.yaml
Nagu näete, tarkvarapaketid httpd, php, ja vsftpd on installitud minu CentOS 8 hostile.
$ sudo dnf loend on installitud | grep httpd$ sudo dnf loend on installitud | grep php
$ sudo dnf loend on installitud | grep vsftpd
Järeldus
See artikkel näitas teile, kuidas with_items ja silmus tsüklid, samuti massiivi süntaks koos Ansible'iga yum/dnf moodul CentOS / RHEL 7 või 8 hostidele mitme tarkvarapaketi installimiseks.
Lisateavet leiate ametlikust võimalikust dokumendist.
[1] Ansible loopsi ametlik dokumentatsioon
[2] Ansible with_items ametlik dokumentatsioon
[3] Ansible dnf mooduli ametlik dokumentatsioon
[4] Ansible yum mooduli ametlik dokumentatsioon