Ansible wordt gebruikt om meerdere servers te beheren en te administreren vanaf een centrale computer. Het is een server management tool. Ansible heeft geen configuratie aan de server kant nodig zoals Chef of Puppet. Je installeert Ansible gewoon op je computer en beheert of administreert servers via SSH. Het is heel eenvoudig en gemakkelijk te gebruiken. In dit artikel ga ik je laten zien hoe je Ansible installeert en gebruikt op CentOS 8. Laten we beginnen.

Installeren van Ansible:

Ansible is beschikbaar in de EPEL-repository van CentOS 8. U kunt Ansible dus eenvoudig installeren op CentOS 8.

Werk eerst de cache van de DNF package repository bij met het volgende commando:

$ sudo dnf makecache

Nu, om de EPEL repository in te schakelen, installeer het epel-release pakket met het volgende commando:

$ sudo dnf install epel-release

Om de installatie te bevestigen, drukt u op Y en vervolgens op <Enter>.

epel-release-pakket moet zijn geïnstalleerd en de EPEL-repository moet zijn ingeschakeld.

Nu, update de DNF package repository cache opnieuw met het volgende commando:

$ sudo dnf makecache

Nu, installeer Ansible met het volgende commando:

$ sudo dnf install ansible

Om de installatie te bevestigen, druk op Y en dan op <Enter>.

DNF zou moeten beginnen met het downloaden van alle benodigde pakketten van het internet.

U kunt gevraagd worden om de GPG-sleutel van de EPEL-repository te accepteren. Druk op Y en vervolgens op <Enter> om deze te accepteren.

DNF zou moeten beginnen met het installeren van alle gedownloade pakketten.

Op dit punt zou Ansible geïnstalleerd moeten zijn.

Nu voert u het volgende commando uit:

$ ansible –version

Zoals u kunt zien, draai ik Ansible 2.9.3 en het werkt prima.

Servers configureren voor Ansible:

Om servers te beheren of te administreren met Ansible, moet u een SSH-server hebben geïnstalleerd en draaien op de servers. De SSH poort van de server moet open staan en de servers moeten toegankelijk zijn vanaf de Ansible host. Dat is de enige vereiste voor het gebruik van Ansible.

In dit artikel, ga ik 4 virtuele machines (VM’s) gebruiken (2 Ubuntu Server 18.04 LTS VM’s en 2 Debian 10 VM’s) voor het demonstreren van de basis van Ansible server beheer en administratie.

De 4 VM’s zijn:

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

U kunt de IP adressen van de servers gebruiken om ze te beheren of te administreren met Ansible. Je kunt ook DNS namen van de servers gebruiken.

In dit artikel, zal ik het /etc/hosts bestand gebruiken voor DNS resolutie van de VMs IP adressen.

Als je het wilt volgen, open je /etc/hosts bestand met vi tekst editor als volgt:

$ sudo vi /etc/hosts

Nu, voeg de regels toe zoals gemarkeerd in de schermafdruk hieronder en sla het bestand op.

Nu, genereer een SSH sleutel op uw CentOS 8 Ansible host als volgt:

$ ssh-keygen

Druk op <Enter>.

Druk op <Enter>.

Druk <Enter>.

De SSH-sleutel zou nu gegenereerd moeten zijn.

Nu moet u de SSH-sleutel uploaden naar alle servers die u met Ansible wilt beheren.

Om de SSH-sleutel te kopiëren naar de vm1.linuxhint.local server, voert u het volgende commando uit:

$ ssh-copy-id [email protected]

Nu, typ in yes en druk dan <Enter>.

Nu, typ in het login wachtwoord van de vm1.linuxhint.local VM en druk op <Enter>.

De SSH-sleutel zou moeten worden gekopieerd.

Doe hetzelfde voor de vm2.linuxhint.local, vm3.linuxhint.local en vm4.linuxhint.local server.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Als je eenmaal de SSH-sleutel naar de VM’s hebt gekopieerd, zou je in staat moeten zijn om zonder wachtwoord te SSH-en, zoals je kunt zien in de schermafbeelding hieronder.

Nu voert u het volgende commando uit op elke server om sudo-toegang zonder wachtwoord toe te staan voor de gebruiker die inlogt. Dit is nodig om Ansible root commando’s te laten uitvoeren.

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

Alle servers zijn nu klaar om te worden geconfigureerd of beheerd vanuit Ansible.

Ansible gebruiken:

Ansible houdt een lijst bij van alle hosts die het beheert in een bestand genaamd inventory file. Het inventarisbestand van Ansible is gewoon een gewoon tekstbestand.

Laten we eerst een nieuwe Ansible projectdirectory ~/ansible/ aanmaken, daarna gaan we ons inventarisbestand maken.

$ mkdir ~/ansible

Nu navigeren naar de ~/ansible directory.

$ cd ~/ansible

Nu een Ansible inventarisatiebestand maken op de volgende manier. Je kunt dit bestand van alles noemen. Ik zal het hosts noemen.

$ vi hosts

Nu kunt u uw servers als volgt toevoegen. Hier wordt de optie ansible_user gebruikt om de gebruiker te definiëren die Ansible zal gebruiken om commando’s op deze servers uit te voeren. Meestal is dit de login gebruiker van de server.

Je kunt ook IP adressen en DNS namen van de servers in het inventaris bestand opnemen.

Je kunt servers ook groeperen. Hier heb ik 2 groepen, webserver en dbserver.

In de webserver groep, heb ik vm1 en vm2 servers toegevoegd. In de dbserver groep, heb ik vm3 en vm4 servers toegevoegd.

Als de inventory file eenmaal is aangemaakt, kun je de inventory file gebruiken met de -i optie van Ansible.

U kunt een lijst van alle hosts uit het inventarisbestand maken als volgt:

$ ansible -i hosts –list-hosts all

U kunt als volgt controleren of alle hosts actief zijn:

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

Zoals u kunt zien, zijn alle hosts actief.

U kunt ook alle hosts in een enkele groep pingen.

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

Je kunt met Ansible als volgt shellcommando’s uitvoeren:

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

Je kunt shellcommando’s (met sudo-privileges) ook als volgt uitvoeren.

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

U kunt bijvoorbeeld de cache van de APT-pakketopslagplaats op de hosts in de webservergroep als volgt met Ansible bijwerken:

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

Zoals u kunt zien, wordt de cache van de APT-pakketopslagplaats bijgewerkt voor alle hosts in de webserver-groep.

Laten we nu eens proberen om Apache 2 webserver te installeren op alle hosts van de webserver-groep.

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

Apache webserver zou op alle hosts van de webservergroep geïnstalleerd moeten zijn.

Zoals u kunt zien, werkt Apache webserver op alle hosts in de webserver-groep.

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

Op dezelfde manier kun je ieder commando uitvoeren op alle hosts in de dbserver-groep.

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

U kunt ook Ansible Playbook gebruiken om uw servers eenvoudiger te beheren. Ansible Playbook valt buiten het bestek van dit artikel. Lees de documentatie van Ansible voor meer informatie over Ansible Playbook.

Dank u voor het lezen van dit artikel.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.