Synlig

Installation af flere pakker let på CentOS ved hjælp af Ansible

Installation af flere pakker let på CentOS ved hjælp af Ansible
På Ansible kan du bruge dnf eller yum modul til installation af softwarepakker på CentOS- eller RHEL-værter. Som standard installerer disse moduler kun en enkelt softwarepakke. Du kan bruge dnf eller yum modul flere gange i din Ansible-playbog for at installere så mange softwarepakker, som du vil. Dette er dog ikke den mest effektive måde at gøre dette på, da der vil være en masse gentagelse af kode, som vi gerne vil undgå, hvis det er muligt. Heldigvis kan vi bruge sløjfer til nemt at installere så mange softwarepakker, som vi vil, uden nogen gentagelse af kode.

Denne artikel viser dig, hvordan du installerer flere softwarepakker på CentOS / RHEL-værter ved hjælp af Ansible loop. Så lad os komme i gang.

Forudsætninger

Hvis du vil prøve eksemplerne i denne artikel,
1) Du skal have Ansible installeret på din computer.
2) Du skal have mindst en CentOS / RHEL 7 eller 8 vært konfigureret til Ansible automatisering.

Der er mange artikler om LinuxHint dedikeret til installation af Ansible og konfigurering af værter til Ansible-automatisering. Du kan tjekke disse ud, hvis det er nødvendigt.

Opsætning af et projektmappe

Inden vi går videre, opretter vi en projektmappe, bare for at holde tingene lidt organiseret.

For at oprette projektmappen centos-pkg / og alle de krævede underkataloger (i din nuværende arbejdsmappe), kør følgende kommando:

$ mkdir -pv centos-pkg / playbooks

Når projektmappen er oprettet, skal du navigere til projektmappen som følger:

$ cd centos-pkg /

Opret derefter en værter opgørelsesfil som følger:

$ nano værter

Tilføj værts-IP- eller DNS-navn (vm3.nodekite.com, i mit tilfælde) af dine CentOS / RHEL-værter i lagerfilen (en vært pr. linje).

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

Opret en Ansible konfigurationsfil ansible.cfg i din projektmappe som følger:

$ nano ansible.cfg

Indtast derefter følgende linjer i ansible.cfg fil.

[standard]
beholdning = værter
host_key_checking = Falsk

Når du er færdig, skal du gemme ansible.cfg fil ved at trykke på + x, efterfulgt af Y og .

Prøv at pinge alle CentOS / RHEL-værter, du har tilføjet i din værter opgørelsesfil som følger:

$ ansible all -u ansible -m ping

Som du kan se, er min CentOS 8-vært tilgængelig.

Installation af en enkelt softwarepakke

Dette afsnit viser dig, hvordan du installerer en enkelt softwarepakke ved hjælp af dnf eller yum modul af Ansible på dine CentOS / RHEL-værter.

Opret først den nye playbook install_package.yaml i legebøger / katalog, som følger:

$ nano playbooks / install_package.yaml

Skriv derefter de følgende linjer i install_package.yaml fil.

- værter: alle
bruger: ansible
blive: Sandt
opgaver:
- navn: Installer httpd-pakke
dnf:
navn: httpd
tilstand: til stede
update_cache: Sandt

Når du er færdig, skal du gemme filen ved at trykke på + x, efterfulgt af Y og .

Her har jeg kun tilføjet en opgave, Installer httpd-pakke. Formålet med denne opgave er at installere httpd pakke på CentOS / RHEL 8.

CentOS / RHEL 7 bruger ikke dnf pakkehåndtering, bruger den yum pakkehåndtering. Så hvis du bruger CentOS / RHEL 7, skal du ændre dnf til yum, som markeret i skærmbilledet nedenfor. Ingen andre ændringer er nødvendige.

Det navn bruges til at fortælle dnf eller yum modul navnet på den pakke, du prøver at installere. I dette tilfælde vil det være httpd pakke.

Det stat bruges til at fortælle dnf eller yum moduler handlingen (i.e. installere, opgradere, fjerne) det skal tage den givne pakke. I dette tilfælde er handlingen til stede.

De understøttede værdier for stat mulighed er:

til stede - installerer pakken, hvis den ikke allerede er installeret.

seneste - vil installere pakken, hvis den ikke allerede er installeret; hvis det allerede er installeret, kontrollerer modulet for opdateringer; hvis en opdateret version af pakken er tilgængelig, installerer den den nye version.

fraværende - fjerner pakken, hvis den er installeret.

Hvis den opdater_cache er indstillet til Rigtigt, DNF / YUM-pakkeopbevaringscache opdateres, før pakken installeres.

Kør install_package.yaml playbook som følger:

$ ansible-playbook playbooks / install_package.yaml

Som du kan se, playbook install_package.yaml løb med succes.

Som du kan se, er httpd pakken er installeret på min CentOS 8 vært, som jeg har tilføjet på min værter opgørelsesfil.

$ sudo dnf liste installeret | grep httpd

Hvis du bruger CentOS / RHEL 7, skal du bruge yum pakkehåndtering i stedet for dnf pakkehåndtering for at kontrollere, om pakken er installeret.

$ sudo yum-listen er installeret | grep httpd

Installation af flere softwarepakker ved hjælp af loop med_items

Det forrige afsnit i denne artikel viste dig, hvordan du installerer en enkelt softwarepakke på din CentOS / RHEL-vært ved hjælp af Ansible dnf/yum modul. Dette afsnit viser dig, hvordan du installerer flere softwarepakker på dine CentOS / RHEL-værter ved hjælp af Ansible med_elementer løkke.

Opret først den nye playbook install_packages.yaml, som følger:

$ nano playbooks / install_packages.yaml

Skriv følgende linjer i install_packages.yaml fil.

- værter: alle
bruger: ansible
blive: Sandt
opgaver:
- navn: Installer alle pakkerne
dnf:
navn: 'item'
tilstand: til stede
update_cache: Sandt
med_items:
httpd
php
vsftpd

Når du er færdig, skal du trykke på + x, efterfulgt af Y og , for at redde install_packages.yaml fil.

Her har jeg defineret pakkenavnene (httpd, php, vsftpd) som jeg vil installere ved hjælp af med_elementer løkke.

Jeg har erstattet pakkenavnet med variablen vare. Det vare variabel opdateres med pakkens navn i hver iteration.

Kør install_packages.yaml playbook som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, playbook install_packages.yaml løb med succes.

Det httpd, php, og vsftpd pakker er installeret på min CentOS 8-vært, som du kan se i skærmbilledet nedenfor.

$ sudo dnf liste installeret | grep httpd
$ sudo dnf liste installeret | grep php
$ sudo dnf liste installeret | grep vsftpd

Installation af flere softwarepakker ved hjælp af loop-loop

Startende fra Ansible 2.5, er den anbefalede måde at bruge sløjfer på i din playbook ved hjælp af løkke nøgleord i stedet for med_elementer nøgleord. Derfor så du en advarselsmeddelelse, da jeg kørte install_packages.yaml playbook i det tidligere afsnit af denne artikel.

Arbejde med løkker ved hjælp af løkke nøgleord er meget let.

Åbn først afspilningsbogen install_packages.yaml (fra det foregående eksempel) som følger:

$ nano playbooks / install_packages.yaml

I install_packages.yaml playbook, erstat bare udtrykket med_elementer med udtrykket løkke, som markeret i skærmbilledet nedenfor. Du behøver ikke ændre noget andet.

Når du er færdig, skal du trykke på + x, efterfulgt af Y og , for at redde install_packages.yaml fil.

Kør install_packages.yaml playbook som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, opgaven Installer alle pakkerne kørte dnf/yum modul i alt tre gange; en gang for hver løkke vare.

Det httpd, php, og vsftpd pakker er installeret på min CentOS 8-vært, som du kan se i skærmbilledet nedenfor.

$ sudo dnf liste installeret | grep httpd
$ sudo dnf-listen er installeret | grep php
$ sudo dnf liste installeret | grep vsftpd

Installation af flere softwarepakker ved hjælp af Array Syntax

Tidligere afsnit i denne artikel viste dig, hvordan du bruger med_elementer og løkke sløjfer i Ansible for at installere flere softwarepakker på CentOS / RHEL 7 eller 8 uden gentagelse af kode. Dette afsnit viser dig, hvordan du gør det samme med en enklere array-syntaks.

Først skal du åbne install_packages.yaml playbook som følger:

$ nano playbooks / install_packages.yaml

Fjern med_elementer eller løkke sektion fra opgaven, og skift navn mulighed for at ['httpd', 'php', vsftpd '], som markeret i skærmbilledet nedenfor.

Når du er færdig, skal du trykke på + x, efterfulgt af Y og , for at redde install_packages.yaml playbook.

Her er hver citeret streng inden for de firkantede parenteser ([]) er et array-element (softwarepakkens navn, i mit tilfælde). Hvert array-element skal adskilles med et komma (,). Du kan tilføje så mange matrixelementer, som du vil. Jeg har kun tilføjet tre elementer, httpd, php, og vsftpd.

Kør install_packages.yaml playbook som følger:

$ ansible-playbook playbooks / install_packages.yaml

Som du kan se, er softwarepakkerne httpd, php, og vsftpd er installeret på min CentOS 8-vært.

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

Konklusion

Denne artikel viste dig, hvordan du bruger med_elementer og løkke sløjfer såvel som Array-syntaksen med Ansible yum/dnf modul til at installere flere softwarepakker på dine CentOS / RHEL 7 eller 8 værter.

For mere information, se den officielle Ansible-dokumentation.

[1] Officiel dokumentation for Ansible loops
[2] Officiel dokumentation for Ansible with_items
[3] Officiel dokumentation for Ansible dnf-modul
[4] Officiel dokumentation for Ansible yum-modul

Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...