Ovaj će vam članak pokazati kako instalirati više softverskih paketa na CentOS / RHEL hostove pomoću petlje Ansible. Pa, krenimo.
Preduvjeti
Ako želite isprobati primjere u ovom članku,
1) Na računalu morate imati instaliran Ansible.
2) Morate imati najmanje CentOS / RHEL 7 ili 8 host konfiguriran za Ansible automatizaciju.
Na LinuxHintu postoji mnogo članaka posvećenih Instaliranju Ansible i konfiguriranju hostova za Ansible automatizaciju. Možete ih provjeriti ako je potrebno.
Postavljanje direktorija projekata
Prije nego što krenemo dalje, stvorit ćemo direktorij projekata, samo da stvari budu malo organizirane.
Za stvaranje direktorija projekta centos-kg / i sve potrebne poddirektorijume (u vašem trenutnom radnom direktoriju), pokrenite sljedeću naredbu:
$ mkdir -pv centos-pkg / playbooks
Jednom kad se kreira direktorij projekta, prijeđite na direktorij projekta, kako slijedi:
$ cd centos-kg /
Zatim stvorite a domaćini inventarna datoteka, kako slijedi:
$ nano domaćini
Dodajte IP ili DNS ime hosta (vm3.nodekite.com, u mom slučaju) vaših CentOS / RHEL hostova u datoteci inventara (jedan host u retku).
Nakon što završite, datoteku spremite pritiskom na
Stvorite konfiguracijsku datoteku Ansible ansible.usp u vašem direktoriju projekta, kako slijedi:
$ nano ansible.usp
Zatim unesite sljedeće retke u ansible.usp datoteka.
[zadane postavke]inventar = domaćini
host_key_checking = Netačno
Nakon što završite, spremite ansible.usp datoteku pritiskom na
Pokušajte pingati sve CentOS / RHEL hostove koje ste dodali u svoj domaćini inventarna datoteka, kako slijedi:
$ ansible sve -u ansible -m ping
Kao što vidite, moj CentOS 8 domaćin je dostupan.
Instaliranje jednog softverskog paketa
Ovaj će vam odjeljak pokazati kako instalirati jedan softverski paket pomoću dnf ili njam modul Ansible na vašim CentOS / RHEL domaćinima.
Prvo izradite novu knjigu pjesama install_package.yaml u igraonice / direktorij, kako slijedi:
$ nano playbooks / install_package.yaml
Zatim unesite sljedeće retke u install_package.yaml datoteka.
- domaćini: svikorisnik: ansible
postati: Istina
zadaci:
- ime: Instalirajte httpd paket
dnf:
naziv: httpd
stanje: prisutno
update_cache: Tačno
Nakon što završite, datoteku spremite pritiskom na
Evo, dodao sam samo jedan zadatak, Instalirajte httpd paket. Svrha ovog zadatka je instalirati httpd paket na CentOS / RHEL 8.
CentOS / RHEL 7 ne koristi dnf paket manager, koristi njam upravitelj paketa. Dakle, ako koristite CentOS / RHEL 7, promijenite ga dnf do njam, kako je označeno na snimci zaslona u nastavku. Nisu potrebne nikakve druge promjene.
The Ime opcija koristi se za kazivanje dnf ili njam modul naziv paketa koji pokušavate instalirati. U ovom će slučaju to biti httpd paket.
The država opcija koristi se za kazivanje dnf ili njam modul radnje (tj.e. instalirati, nadograditi, ukloniti) trebao bi preuzeti zadani paket. U ovom slučaju radnja je predstaviti.
Podržane vrijednosti država opcije su:
predstaviti - instalirat će paket ako već nije instaliran.
najnoviji - instalirat će paket ako već nije instaliran; ako je već instaliran, modul će provjeriti ima li ažuriranja; ako je dostupna ažurirana verzija paketa, instalirat će novu verziju.
odsutan - uklonit će paket ako je instaliran.
Ako je update_cache opcija je postavljena na Pravi, predmemorija spremišta spremišta DNF / YUM bit će ažurirana prije instaliranja paketa.
Pokrenite install_package.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / install_package.yaml
Kao što vidite, igrana knjiga install_package.yaml uspješno trčao.
Kao što vidite, httpd paket je instaliran na mom CentOS 8 hostu, koji sam dodao na svoj domaćini spis inventara.
Instaliran $ sudo dnf popis | grep httpd
Ako ste na CentOS / RHEL 7, upotrijebite njam upravitelj paketa umjesto dnf upravitelj paketa da provjeri je li paket instaliran.
$ sudo yum popis instaliran | grep httpd
Instaliranje više softverskih paketa pomoću petlje with_items
Prethodni odjeljak ovog članka pokazao vam je kako instalirati jedan softverski paket na vaš CentOS / RHEL domaćin pomoću programa Ansible dnf/njam modul. Ovaj će vam odjeljak pokazati kako instalirati više softverskih paketa na svoje CentOS / RHEL hostove pomoću Ansible sa_postavkama petlja.
Prvo izradite novu knjigu pjesama install_packages.yaml, kako slijedi:
$ nano playbooks / install_packages.yaml
Utipkajte sljedeće retke u install_packages.yaml datoteka.
- domaćini: svikorisnik: ansible
postati: Istina
zadaci:
- ime: Instalirajte sve pakete
dnf:
ime: 'item'
stanje: prisutno
update_cache: Tačno
with_items:
httpd
php
vsftpd
Kada završite, pritisnite
Ovdje sam definirao nazive paketa (httpd, php, vsftpd) koji želim instalirati pomoću sa_postavkama petlja.
Zamijenio sam naziv paketa varijablom artikal. The artikal varijabla će se ažurirati s imenom paketa u svakoj iteraciji.
Pokrenite install_packages.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / install_packages.yaml
Kao što vidite, igrana knjiga install_packages.yaml uspješno trčao.
The httpd, php, i vsftpd paketi su instalirani na mom CentOS 8 hostu, kao što možete vidjeti na snimci zaslona u nastavku.
Instaliran $ sudo dnf popis | grep httpdInstaliran $ sudo dnf popis | grep php
Instaliran $ sudo dnf popis | grep vsftpd
Instaliranje više softverskih paketa pomoću petlje loop
Polazeći od Ansible 2.5, preporučeni način korištenja petlji u vašoj playbook je korištenje petlja ključna riječ, umjesto sa_postavkama ključna riječ. Zbog toga ste vidjeli poruku upozorenja kad sam pokrenuo install_packages.yaml playbook u ranijem odjeljku ovog članka.
Rad s petljama pomoću petlja ključna riječ je vrlo jednostavna.
Prvo otvorite knjigu s igrama install_packages.yaml (iz prethodnog primjera), kako slijedi:
$ nano playbooks / install_packages.yaml
U install_packages.yaml playbook, samo zamijenite pojam sa_postavkama s pojmom petlja, kako je označeno na snimci zaslona u nastavku. Ne trebate ništa drugo mijenjati.
Kada završite, pritisnite
Pokrenite install_packages.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / install_packages.yaml
Kao što vidite, zadatak Instalirajte sve pakete vodio dnf/njam modul ukupno tri puta; jednom za svaku petlju artikal.
The httpd, php, i vsftpd paketi su instalirani na mom CentOS 8 hostu, kao što možete vidjeti na snimci zaslona u nastavku.
Instaliran $ sudo dnf popis | grep httpdInstaliran $ sudo dnf popis | grep php
Instaliran $ sudo dnf popis | grep vsftpd
Instaliranje više softverskih paketa korištenjem Array Syntax
Raniji odjeljci ovog članka pokazali su vam kako koristiti sa_postavkama i petlja petlje u Ansibleu za instaliranje više softverskih paketa na CentOS / RHEL 7 ili 8, bez ponavljanja koda. Ovaj će vam odjeljak pokazati kako učiniti istu stvar s jednostavnijom sintaksom niza.
Prvo otvorite install_packages.yaml playbook, kako slijedi:
$ nano playbooks / install_packages.yaml
Uklonite sa_postavkama ili petlja odjeljak iz zadatka i promijenite Ime mogućnost da ['httpd', 'php', vsftpd '], kako je označeno na snimci zaslona u nastavku.
Kada završite, pritisnite
Ovdje svaki citirani niz unutar uglatih zagrada ([]) je element niza (u mom slučaju naziv softverskog paketa). Svaki element niza trebao bi biti odvojen zarezom (,). Možete dodati onoliko elemenata niza koliko želite. Dodao sam samo tri elementa, httpd, php, i vsftpd.
Pokrenite install_packages.yaml playbook, kako slijedi:
$ ansible-playbook playbooks / install_packages.yaml
Kao što vidite, softverski paketi httpd, php, i vsftpd su instalirani na mom CentOS 8 hostu.
Instaliran $ sudo dnf popis | grep httpdInstaliran $ sudo dnf popis | grep php
Instaliran $ sudo dnf popis | grep vsftpd
Zaključak
Ovaj vam je članak pokazao kako se koristi sa_postavkama i petlja petlje, kao i sintaksa Array, s Ansible njam/dnf modul za instaliranje više softverskih paketa na vaše CentOS / RHEL 7 ili 8 hostove.
Za više informacija pogledajte službenu dokumentaciju Ansible.
[1] Službena dokumentacija petlji Ansible
[2] Službena dokumentacija Ansible with_items
[3] Službena dokumentacija modula Ansible dnf
[4] Službena dokumentacija modula Ansible yum