Ansible

Installere flere pakker enkelt på CentOS ved hjelp av Ansible

Installere flere pakker enkelt på CentOS ved hjelp av Ansible
På Ansible kan du bruke dnf eller yum modul for å installere programvarepakker på CentOS- eller RHEL-verter. Som standard installerer disse modulene bare en enkelt programvarepakke. Du kan bruke dnf eller yum modul flere ganger i Ansible-spillboken for å installere så mange programvarepakker du vil. Dette er imidlertid ikke den mest effektive måten å gjøre dette på, da det vil være mye kodegentagelse som vi ønsker å unngå hvis mulig. Heldigvis kan vi bruke sløyfer for å enkelt installere så mange programvarepakker som vi vil uten kodegjenta.

Denne artikkelen viser deg hvordan du installerer flere programvarepakker på CentOS / RHEL-verter ved hjelp av Ansible loop. Så la oss komme i gang.

Forutsetninger

Hvis du vil prøve eksemplene i denne artikkelen,
1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst en CentOS / RHEL 7- eller 8-vert konfigurert for Ansible-automatisering.

Det er mange artikler om LinuxHint dedikert til å installere Ansible og konfigurere verter for Ansible automatisering. Du kan sjekke ut disse om nødvendig.

Sette opp en prosjektkatalog

Før vi går videre, vil vi lage en prosjektkatalog, bare for å holde ting litt organisert.

Å lage prosjektkatalogen centos-pkg / og alle nødvendige underkataloger (i din nåværende arbeidskatalog), kjør følgende kommando:

$ mkdir -pv centos-pkg / playbooks

Når prosjektkatalogen er opprettet, navigerer du til prosjektkatalogen, som følger:

$ cd centos-pkg /

Deretter oppretter du en verter inventarfil, som følger:

$ nano verter

Legg til verts-IP- eller DNS-navn (vm3.nodekite.com, i mitt tilfelle) av CentOS / RHEL-vertene i lagerfilen (en vert per linje).

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Opprett en Ansible-konfigurasjonsfil ansible.cfg i prosjektkatalogen din, som følger:

$ nano ansible.cfg

Skriv deretter inn følgende linjer i ansible.cfg fil.

[standard]
inventar = verter
host_key_checking = Usann

Når du er ferdig, lagrer du ansible.cfg filen ved å trykke på + X, etterfulgt av Y og .

Prøv å pinge alle CentOS / RHEL-vertene du har lagt til i din verter inventarfil, som følger:

$ ansible all -u ansible -m ping

Som du kan se, er CentOS 8-verten min tilgjengelig.

Installere en enkelt programvarepakke

Denne delen viser deg hvordan du installerer en enkelt programvarepakke ved hjelp av dnf eller yum modul av Ansible på CentOS / RHEL-vertene.

Først oppretter du den nye spillboken install_package.yaml i lekebøker / katalog, som følger:

$ nano playbooks / install_package.yaml

Deretter skriver du inn følgende linjer i install_package.yaml fil.

- verter: alle
bruker: ansible
bli: Sant
oppgaver:
- navn: Installer httpd-pakken
dnf:
navn: httpd
tilstand: til stede
update_cache: Sant

Når du er ferdig, lagrer du filen ved å trykke på + X, etterfulgt av Y og .

Her har jeg bare lagt til en oppgave, Installer httpd-pakken. Formålet med denne oppgaven er å installere httpd pakke på CentOS / RHEL 8.

CentOS / RHEL 7 bruker ikke dnf pakkeleder, bruker den yum pakkeleder. Så hvis du bruker CentOS / RHEL 7, må du endre dnf til yum, som markert i skjermbildet nedenfor. Ingen andre endringer er nødvendige.

De Navn alternativet brukes til å fortelle dnf eller yum modul navnet på pakken du prøver å installere. I dette tilfellet vil det være httpd pakke.

De stat alternativet brukes til å fortelle dnf eller yum moduler handlingen (i.e. installere, oppgradere, fjerne) det skal ta på den gitte pakken. I dette tilfellet er handlingen tilstede.

De støttede verdiene til stat alternativet er:

tilstede - vil installere pakken hvis den ikke allerede er installert.

siste - vil installere pakken hvis den ikke allerede er installert; hvis den allerede er installert, vil modulen se etter oppdateringer; Hvis en oppdatert versjon av pakken er tilgjengelig, vil den installere den nye versjonen.

fraværende - fjerner pakken hvis den er installert.

Hvis den update_cache alternativet er satt til ekte, DNF / YUM-pakkeoppbevaringsbufferen oppdateres før pakken installeres.

Kjør install_package.yaml spillbok, som følger:

$ ansible-playbook playbooks / install_package.yaml

Som du kan se, playbook install_package.yaml løp vellykket.

Som du kan se, er httpd pakken er installert på min CentOS 8-vert, som jeg har lagt til på min verter inventarfil.

$ sudo dnf-listen er installert | grep httpd

Hvis du bruker CentOS / RHEL 7, bruk yum pakkeleder i stedet for dnf pakkebehandling for å verifisere om pakken er installert.

$ sudo yum-listen er installert | grep httpd

Installere flere programvarepakker ved hjelp av with_items Loop

Den forrige delen av denne artikkelen viste deg hvordan du installerer en enkelt programvarepakke på din CentOS / RHEL-vert ved hjelp av Ansible dnf/yum modul. Denne delen viser deg hvordan du installerer flere programvarepakker på CentOS / RHEL-vertene ved hjelp av Ansible med_elementer Løkke.

Først oppretter du den nye spillboken install_packages.yaml, som følger:

$ nano playbooks / install_packages.yaml

Skriv inn følgende linjer i install_packages.yaml fil.

- verter: alle
bruker: ansible
bli: Sant
oppgaver:
- navn: Installer alle pakkene
dnf:
navn: 'item'
tilstand: til stede
update_cache: Sant
med_elementer:
httpd
php
vsftpd

Når du er ferdig, trykker du på + X, etterfulgt av Y og , for å redde install_packages.yaml fil.

Her har jeg definert pakkenavnene (httpd, php, vsftpd) som jeg vil installere ved hjelp av med_elementer Løkke.

Jeg har erstattet pakkenavnet med variabelen punkt. De punkt variabel vil bli oppdatert med pakkenavnet i hver iterasjon.

Kjør install_packages.yaml spillbok, som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, playbook install_packages.yaml løp vellykket.

De httpd, php, og vsftpd pakker er installert på min CentOS 8-vert, som du kan se på skjermbildet nedenfor.

$ sudo dnf-listen er installert | grep httpd
$ sudo dnf-listen er installert | grep php
$ sudo dnf-listen er installert | grep vsftpd

Installere flere programvarepakker ved hjelp av loop loop

Starter fra Ansible 2.5, er den anbefalte måten å bruke løkker i spillboken din på Løkke nøkkelord, i stedet for med_elementer nøkkelord. Derfor så du en advarsel når jeg kjørte install_packages.yaml spillbok i den tidligere delen av denne artikkelen.

Arbeider med løkker ved hjelp av Løkke nøkkelord er veldig enkelt.

Først åpner du lekeboken install_packages.yaml (fra forrige eksempel), som følger:

$ nano playbooks / install_packages.yaml

I install_packages.yaml playbook, bare erstatt begrepet med_elementer med begrepet Løkke, som markert i skjermbildet nedenfor. Du trenger ikke endre noe annet.

Når du er ferdig, trykker du på + X, etterfulgt av Y og , for å redde install_packages.yaml fil.

Kjør install_packages.yaml spillbok, som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, oppgaven Installer alle pakkene kjørte dnf/yum modul totalt tre ganger; en gang for hver løkke punkt.

De httpd, php, og vsftpd pakker er installert på min CentOS 8-vert, som du kan se på skjermbildet nedenfor.

$ sudo dnf-listen er installert | grep httpd
$ sudo dnf-listen er installert | grep php
$ sudo dnf-listen er installert | grep vsftpd

Installere flere programvarepakker ved hjelp av Array Syntax

Tidligere deler av denne artikkelen viste deg hvordan du bruker med_elementer og Løkke sløyfer i Ansible for å installere flere programvarepakker på CentOS / RHEL 7 eller 8, uten noen repetisjon av kode. Denne delen vil vise deg hvordan du gjør det samme med en enklere matrisesyntaks.

Først åpner du install_packages.yaml spillbok, som følger:

$ nano playbooks / install_packages.yaml

Fjern med_elementer eller Løkke delen fra oppgaven og endre Navn alternativ til ['httpd', 'php', vsftpd '], som markert i skjermbildet nedenfor.

Når du er ferdig, trykker du på + X, etterfulgt av Y og , for å redde install_packages.yaml lekebok.

Her siterer hver sitert streng innenfor de firkantede parentesene ([]) er et arrayelement (navnet på programvarepakken, i mitt tilfelle). Hvert matriseelement skal være atskilt med komma (,). Du kan legge til så mange matriseelementer som du ønsker. Jeg har bare lagt til tre elementer, httpd, php, og vsftpd.

Kjør install_packages.yaml spillbok, som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, programvarepakkene httpd, php, og vsftpd er installert på min CentOS 8-vert.

$ sudo dnf-listen er installert | grep httpd
$ sudo dnf-listen er installert | grep php
$ sudo dnf-listen er installert | grep vsftpd

Konklusjon

Denne artikkelen viste deg hvordan du bruker med_elementer og Løkke sløyfer, så vel som Array-syntaksen, med Ansible yum/dnf modul for å installere flere programvarepakker på CentOS / RHEL 7 eller 8 vertene.

For mer informasjon, sjekk den offisielle Ansible-dokumentasjonen.

[1] Offisiell dokumentasjon av Ansible loops
[2] Offisiell dokumentasjon av Ansible with_items
[3] Offisiell dokumentasjon av Ansible dnf-modul
[4] Offisiell dokumentasjon av Ansible yum-modul

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...