Ansible bruges til at administrere og styre flere servere fra en central computer. Det er et serverstyringsværktøj. Ansible har ikke brug for nogen konfiguration på serversiden som Chef eller Puppet. Du installerer bare Ansible på din computer og administrerer eller administrerer servere via SSH. Det er meget enkelt og nemt at bruge. I denne artikel vil jeg vise dig, hvordan du installerer og bruger Ansible på CentOS 8. Så lad os komme i gang.

Installation af Ansible:

Ansible er tilgængelig i EPEL-repositoriet i CentOS 8. Så du kan nemt installere Ansible på CentOS 8.

Først skal du opdatere DNF-pakkerepositoriets cache med følgende kommando:

$ sudo dnf makecache

Nu skal du aktivere EPEL-repositoriet ved at installere pakken epel-release med følgende kommando:

$ sudo dnf install epel-release

For at bekræfte installationen skal du trykke på Y og derefter trykke på <Enter>.

epel-release-pakken skulle være installeret, og EPEL-repositoriet skulle være aktiveret.

Må nu opdatere DNF-pakkerepositoriets cache igen med følgende kommando:

$ sudo dnf makecache

Må nu installere Ansible med følgende kommando:

$ sudo dnf makecache

Må nu installere Ansible med følgende kommando:

$ sudo dnf install ansible

For at bekræfte installationen skal du trykke på Y og derefter trykke på <Enter>.

DNF bør begynde at hente alle de nødvendige pakker fra internettet.

Du kan blive bedt om at acceptere GPG-nøglen for EPEL-repositoriet. Tryk på Y, og tryk derefter på <Enter> for at acceptere den.

DNF bør begynde at installere alle de hentede pakker.

På dette tidspunkt bør Ansible være installeret.

Kør nu følgende kommando:

$ ansible –version

Som du kan se, kører jeg Ansible 2.9.3, og det fungerer fint.

Konfigurering af servere til Ansible:

For at kunne administrere eller styre servere med Ansible skal du have SSH-server installeret og køre på serverne. Servernes SSH-port skal være åben, og serverne skal være tilgængelige fra Ansible-værten. Det er det eneste krav for at bruge Ansible.

I denne artikel vil jeg bruge 4 virtuelle maskiner (VM’er) (2 Ubuntu Server 18.04 LTS VM’er og 2 Debian 10 VM’er) til at demonstrere det grundlæggende i Ansible-serverstyring og -administration.

De 4 VM’er er:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Du kan bruge servernes IP-adresser til at styre eller administrere dem med Ansible. Du kan også bruge DNS-navne på serverne også.

I denne artikel vil jeg bruge /etc/hosts-filen til DNS-opløsning af VM’ernes IP-adresser.

Hvis du vil følge med, skal du åbne din /etc/hosts-fil med vi-teksteditor som følger:

$ sudo vi /etc/hosts

Føj nu linjerne som markeret i skærmbilledet nedenfor, og gem filen.

Generer nu en SSH-nøgle på din CentOS 8 Ansible-vært som følger:

$ ssh-keygen

Tryk <Enter>.

Tryk <Enter>.

Tryk på <Enter>.

SSH-nøglen skulle være genereret.

Nu skal du uploade SSH-nøglen til alle de servere, som du ønsker at administrere med Ansible.

For at kopiere SSH-nøglen til vm1.linuxhint.local server, skal du køre følgende kommando:

$ ssh-copy-id [email protected]

Nu skal du skrive yes og derefter trykke på <Enter>.

Nu skal du skrive login passwordet for vm1.linuxhint.local VM og tryk på <Enter>.

SSH-nøglen skal kopieres.

Gør det samme for serverne vm2.linuxhint.local, vm3.linuxhint.local og vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Når du har kopieret SSH-nøglen til de virtuelle maskiner, bør du være i stand til at SSH ind på den uden adgangskode, som du kan se i skærmbilledet nedenfor.

Kør nu følgende kommando på hver server for at tillade sudoadgang uden adgangskode for login-brugeren. Dette er nødvendigt for at Ansible kan køre alle root-kommandoer.

$ echo “$(whoami) ALL=(ALL) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/$(whoami)

Alle servere er nu klar til at blive konfigureret eller administreret fra Ansible.

Anvendelse af Ansible:

Ansible opbevarer en liste over alle de hosts, den administrerer, i en fil kaldet inventory-filen. Ansible inventory-filen er bare en simpel almindelig tekstfil.

Lad os først oprette en ny Ansible-projektmappe ~/ansible/, og derefter opretter vi vores inventory-fil.

$ mkdir ~/ansible

Nu skal du navigere til mappen ~/ansible.

$ cd ~/ansible

Nu skal du oprette en Ansible-inventarfil som følger. Du kan kalde denne fil hvad som helst. Jeg vil kalde den hosts.

$ vi hosts

Nu kan du tilføje dine servere som følger. Her bruges ansible_user-indstillingen til at definere den bruger, som Ansible vil bruge til at køre kommandoer på disse servere. Det er normalt serverens login-bruger.

Du kan også blande IP-adresser og DNS-navne på serverne i inventarfilen også.

Du kan også gruppere servere. Her har jeg 2 grupper, webserver og dbserver.

I gruppen webserver har jeg tilføjet vm1- og vm2-servere. I dbserver-gruppen har jeg tilføjet vm3- og vm4-servere.

Når inventarfilen er oprettet, kan du bruge inventarfilen ved hjælp af -i indstillingen i Ansible.

Du kan liste alle værter fra inventarfilen som følger:

$ ansible -i hosts –list-hosts all

Du kan kontrollere, om alle værter er aktive, som følger:

$ ansible -i hosts –list-hosts all

Du kan kontrollere, om alle værter er aktive, som følger:

$ ansible -i hosts –list-hosts -m ping all

Som du kan se, er alle hosts aktive.

Du kan også pinge alle værter i en enkelt gruppe også.

$ ansible -i hosts –list-hosts -m ping webserver

Du kan køre shell-kommandoer ved hjælp af Ansible på følgende måde:

$ ansible -i hosts -m shell -a ‘command’ <all|groupName>

Du kan også køre shell-kommandoer (med sudo privilegier) som følger:

Du kan også køre shell-kommandoer (med sudo privilegier) som følger.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘command’ &lt;all
|groupName&gt;

For eksempel kan du opdatere APT-pakkerepositoriets cache på værterne i webserver-gruppen ved hjælp af Ansible på følgende måde:

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘apt update’ webserver

Som du kan se, opdateres APT-pakkeopbevaringscachen for alle værter i webservergruppen.

Lad os prøve at installere Apache 2-webserveren på alle værter i webservergruppen.

$ ansible -i hosts -b –become-method=sudo -m shell -a
‘apt install -y apache2’ webserver

Apache webserver bør være installeret på alle værter i webservergruppen.

Som du kan se, fungerer Apache-webserveren på alle værter i webserver-gruppen.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘curl -sI
http://localhost’ webserver

På samme måde kan du køre en hvilken som helst kommando på alle hosts i dbserver-gruppen.

$ ansible -i hosts -m shell -a ‘lsb_release -a’ dbserver

Du kan også bruge Ansible Playbook til at administrere dine servere nemmere. Ansible Playbook er uden for rammerne af denne artikel. Læs dokumentationen til Ansible for at få flere oplysninger om Ansible Playbook.

Tak for at du læste denne artikel.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.