Ta članek vam bo pokazal, kako namestite več programskih paketov na gostitelje CentOS / RHEL z uporabo zanke Ansible. Torej, začnimo.
Pogoji
Če želite preizkusiti primere v tem članku,
1) V računalniku mora biti nameščen Ansible.
2) Za Ansible avtomatizacijo morate imeti konfiguriran vsaj gostitelj CentOS / RHEL 7 ali 8.
V LinuxHintu je veliko člankov, namenjenih namestitvi programa Ansible in konfiguriranju gostiteljev za avtomatizacijo Ansible. Po potrebi jih lahko preverite.
Nastavitev imenika projektov
Pred nadaljnjim premikanjem bomo ustvarili imenik projektov, da bomo stvari malo organizirali.
Če želite ustvariti imenik projekta centos-pkg / in vse zahtevane podimenike (v trenutnem delovnem imeniku) zaženite naslednji ukaz:
$ mkdir -pv centos-pkg / playbooks
Ko je imenik projekta ustvarjen, se pomaknite do imenika projekta, kot sledi:
$ cd centos-pkg /
Nato ustvarite datoteko gostitelji inventarna datoteka, kot sledi:
$ nano gostitelji
Dodajte ime gostitelja IP ali DNS (vm3.nodekite.com, v mojem primeru) vaših CentOS / RHEL gostiteljev v inventarni datoteki (en gostitelj na vrstico).
Ko končate, datoteko shranite s pritiskom na
Ustvarite konfiguracijsko datoteko Ansible ansible.prim v imeniku vašega projekta, kot sledi:
$ nano ansible.prim
Nato v vrstico vnesite naslednje vrstice ansible.prim mapa.
[privzeto]inventar = gostitelji
host_key_checking = False
Ko končate, shranite ansible.prim s pritiskom na
Poskusite pingati vse gostitelje CentOS / RHEL, ki ste jih dodali v svoj gostitelji inventarna datoteka, kot sledi:
$ ansible vse -u ansible -m ping
Kot lahko vidite, je moj gostitelj CentOS 8 dostopen.
Namestitev enega programskega paketa
Ta razdelek vam bo pokazal, kako namestite posamezen programski paket s pomočjo dnf ali njam modul Ansible na vaših gostiteljih CentOS / RHEL.
Najprej ustvarite novo igro install_package.yaml v igralne knjige / imenik, kot sledi:
$ nano playbooks / install_package.yaml
Nato v vrstico vnesite naslednje vrstice install_package.yaml mapa.
- gostitelji: vsiuporabnik: ansible
postati: Resnično
naloge:
- ime: Namestite paket httpd
dnf:
ime: httpd
stanje: prisotno
update_cache: True
Ko končate, datoteko shranite s pritiskom na
Tu sem dodal samo eno nalogo, Namestite paket httpd. Namen te naloge je namestiti httpd paket na CentOS / RHEL 8.
CentOS / RHEL 7 ne uporablja dnf upravitelj paketov, uporablja njam upravitelj paketov. Torej, če uporabljate CentOS / RHEL 7, spremenite dnf do njam, kot je označeno na spodnjem posnetku zaslona. Druge spremembe niso potrebne.
The ime možnost se uporablja za sporočanje dnf ali njam modul ime paketa, ki ga želite namestiti. V tem primeru bo to httpd paket.
The država možnost se uporablja za sporočanje dnf ali njam modul ukrepa (tj.e. namestite, nadgradite, odstranite), naj prevzame dani paket. V tem primeru je dejanje prisoten.
Podprte vrednosti država možnosti so:
prisoten - bo namestil paket, če še ni nameščen.
najnovejši - bo namestil paket, če še ni nameščen; če je modul že nameščen, bo preveril posodobitve; če je na voljo posodobljena različica paketa, bo namestil novo različico.
odsoten - bo odstranil paket, če je nameščen.
Če je update_cache možnost nastavljena na Prav, predpomnilnik skladišča paketov DNF / YUM bo posodobljen, preden bo paket nameščen.
Zaženite install_package.yaml playbook, kot sledi:
$ ansible-playbook playbooks / install_package.yaml
Kot lahko vidite, knjigo iger install_package.yaml uspešno tekel.
Kot lahko vidite, httpd paket je nameščen na mojem gostitelju CentOS 8, ki sem ga dodal na svoj gostitelji inventarna datoteka.
Nameščen seznam $ sudo dnf | grep httpd
Če uporabljate CentOS / RHEL 7, uporabite njam namesto dnf upravitelja paketov, da preveri, ali je paket nameščen.
nameščen seznam $ sudo yum | grep httpd
Namestitev več programskih paketov z uporabo zanke with_items
Prejšnji odsek tega članka vam je pokazal, kako na gostitelju CentOS / RHEL namestite en programski paket s pomočjo programa Ansible dnf/njam modul. Ta razdelek vam bo pokazal, kako namestite več programskih paketov na vaše CentOS / RHEL gostitelje z uporabo programa Ansible with_items zanko.
Najprej ustvarite novo igro install_packages.yaml, kot sledi:
$ nano playbooks / install_packages.yaml
V vrstico vnesite naslednje vrstice install_packages.yaml mapa.
- gostitelji: vsiuporabnik: ansible
postati: Resnično
naloge:
- ime: Namestite vse pakete
dnf:
ime: 'item'
stanje: prisotno
update_cache: True
with_items:
httpd
php
vsftpd
Ko končate, pritisnite
Tukaj sem določil imena paketov (httpd, php, vsftpd), ki ga želim namestiti z uporabo with_items zanko.
Ime paketa sem zamenjal s spremenljivko element. The element spremenljivka bo posodobljena z imenom paketa v vsaki ponovitvi.
Zaženite install_packages.yaml playbook, kot sledi:
$ ansible-playbook playbooks / install_packages.yaml
Kot lahko vidite, knjigo iger install_packages.yaml uspešno tekel.
The httpd, php, in vsftpd Paketi so nameščeni na mojem gostitelju CentOS 8, kot lahko vidite na spodnjem posnetku zaslona.
Nameščen seznam $ sudo dnf | grep httpdnameščen seznam $ sudo dnf | grep php
Nameščen seznam $ sudo dnf | grep vsftpd
Namestitev več programskih paketov z uporabo zanke zanke
Začenši z Ansible 2.5, priporočljiv način uporabe zank v vaši knjigi iger je uporaba zanko , namesto with_items ključna beseda. Zato ste ob zagonu programa videli opozorilno sporočilo install_packages.yaml playbook v prejšnjem oddelku tega članka.
Delo z zankami z uporabo zanko ključna beseda je zelo enostavna.
Najprej odprite knjigo iger install_packages.yaml (iz prejšnjega primera), kot sledi:
$ nano playbooks / install_packages.yaml
V install_packages.yaml playbook, samo zamenjajte izraz with_items z izrazom zanko, kot je označeno na spodnjem posnetku zaslona. Ničesar drugega vam ni treba spreminjati.
Ko končate, pritisnite
Zaženite install_packages.yaml playbook, kot sledi:
$ ansible-playbook playbooks / install_packages.yaml
Kot vidite, naloga Namestite vse pakete vodil dnf/njam modul skupaj trikrat; enkrat za vsako zanko element.
The httpd, php, in vsftpd Paketi so nameščeni na mojem gostitelju CentOS 8, kot lahko vidite na spodnjem posnetku zaslona.
Nameščen seznam $ sudo dnf | grep httpdnameščen seznam $ sudo dnf | grep php
Nameščen seznam $ sudo dnf | grep vsftpd
Namestitev več programskih paketov z uporabo Array Syntax
Prejšnji odseki tega članka so vam pokazali, kako uporabljati with_items in zanko zanke v programu Ansible za namestitev več programskih paketov na CentOS / RHEL 7 ali 8, brez ponovitve kode. Ta razdelek vam bo pokazal, kako narediti isto s preprostejšo sintakso matrike.
Najprej odprite install_packages.yaml playbook, kot sledi:
$ nano playbooks / install_packages.yaml
Odstranite with_items ali zanko odsek iz naloge in spremenite ime možnost ['httpd', 'php', vsftpd '], kot je označeno na spodnjem posnetku zaslona.
Ko končate, pritisnite
Tu je vsak naveden niz znotraj oglatih oklepajev ([]) je element polja (v mojem primeru ime programskega paketa). Vsak element matrike mora biti ločen z vejico (,). Dodate lahko toliko elementov matrike, kot želite. Dodal sem le tri elemente, httpd, php, in vsftpd.
Zaženite install_packages.yaml playbook, kot sledi:
$ ansible-playbook playbooks / install_packages.yaml
Kot lahko vidite, programski paketi httpd, php, in vsftpd so nameščeni na mojem gostitelju CentOS 8.
Nameščen seznam $ sudo dnf | grep httpdNameščen seznam $ sudo dnf | grep php
nameščen seznam $ sudo dnf | grep vsftpd
Zaključek
Ta članek vam je pokazal, kako uporabljati with_items in zanko zanke, kot tudi sintaksa matrike, z Ansible njam/dnf modul za namestitev več programskih paketov na vaše CentOS / RHEL 7 ali 8 gostitelje.
Za več informacij glejte uradno dokumentacijo Ansible.
[1] Uradna dokumentacija zank Ansible
[2] Uradna dokumentacija Ansible with_items
[3] Uradna dokumentacija modula Ansible dnf
[4] Uradna dokumentacija modula Ansible yum