Sådan installeres og konfigureres en svær kontrolknude - del 2


I det forrige emne lærer du om grundlæggende Ansible terminologier og grundlæggende begreber. I dette emne (del 2 i Ansible-serien) demonstrerer vi, hvordan du kan installere og konfigurere en Ansible-kontrolknude på RHEL 8.

I vores opsætning skal vi bruge 1 Ansible server og 2 eksterne Linux-noder:

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

En kontrolknude er en Linux-server, der har Ansible installeret og bruges til styring af eksterne værter eller noder. Disse eksterne systemer er kendt som Managed Hosts eller Managed nodes.

I ovenstående opsætning er kontrolknudepunktet RHEL 8-serveren, hvor Ansible skal installeres, og Debian 10 & CentOS 8 er de administrerede værter.

BEMÆRK: Ansible er kun installeret på kontrolknudepunktet og ikke de administrerede værter.

Trin 1: Installation af Python 3

Som standard leveres RHEL 8 med Python 3, og du kan kontrollere den version af Python, der er installeret på din server, ved at køre.

# python3 -V

Hvis Python3 af en eller anden grund ikke er installeret, skal du installere det ved hjælp af følgende dnf-kommando.

# dnf install python3

Hvis der findes flere versioner af Python på dit RHEL 8-system, kan du indstille Python 3 som standard Python-version ved at køre.

# alternatives --set python /usr/bin/python3

Trin 2: Aktivér det officielle RedHat-arkiv

Efter installation af Python3 skal du sikre dig, at du har aktiveret RedHats officielle lager for Ansible som vist nedenfor.

# subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

BEMÆRK: For at ovenstående kommando skal fungere, skal du sikre dig, at du har registreret din RHEL 8 til RedHat-abonnement.

Trin 3: Installer Ansible på RHEL 8

For at installere Ansible på kontrolnoden, som er vores RHEL 8-system, skal du køre kommandoen.

# dnf install ansible -y

Når du er installeret, kan du kontrollere versionen af Ansible installeret ved at køre kommandoen.

# ansible --version

Trin 4: Oprettelse af en statisk værtsbeholdningsfil

Indtil videre har vi med succes installeret ansible på Control Node, som er vores RHEL 8-server. Fjernknudepunkterne, der skal styres af kontrolknudepunktet, skal defineres i en fil kaldet lagerfilen. Inventarfilen er en almindelig tekstfil, der ligger på kontrolknudepunktet og består af fjernværternes værtsnavne eller IP-adresser.

En statisk værtsfil er en almindelig tekstfil, der indeholder en liste over administrerede noder defineret af deres IP-adresser eller værtsnavne. Lad os oprette en statisk fil 'værter' i/etc/ansible/biblioteket.

# vi /etc/ansible/hosts

Definer derefter en eller flere grupper til dine administrerede værter. Vi har 2 administrerede værter som tidligere set i opsætningen ved introduktionen af dette emne. Fra opsætningen defineres den statiske værtsfil som følger:

[webserver]
192.168.0.15

[database_server]
192.168.0.200

Gem og luk lagerfilen.

Sådan vises en liste over administrerede værter, der køres:

# ansible all -i hosts --list-hosts

Indtil videre er det lykkedes os at installere Ansible i kontrolknudepunktet og definere de administrerede værter i en statisk værtsfil, der findes på kontrolknudepunktet.

Dernæst skal vi se, hvordan vi kan styre eller styre vores eksterne eller administrerede værter.

Trin 5: Opsæt den anvendelige kontrolknude til at oprette forbindelse til fjernknudepunkterne

For at Ansible-kontrolknudepunktet (RHEL 8) skal styre fjernværtssystemerne (Debian 10 og CentOS 8), skal vi konfigurere adgangskodeløs SSH-godkendelse til fjernværterne. For at dette kan ske, skal du generere et SSH-nøglepar og gemme den offentlige nøgle til de eksterne knudepunkter.

På Ansible-kontrolknudepunktet skal du logge ind som en normal bruger og generere SSH-nøgleparet ved at køre kommandoen.

# su tecmint
$ ssh-keygen

Kopier derefter den offentlige ssh-nøgle til eksterne noder som vist.

$ ssh-copy-id [email 	        (For Debian 10 node)
$ ssh-copy-id [email 	        (For CentOS 8 node)

Efter at have tilføjet de offentlige nøgler til alle vores fjernknudepunkter udsteder vi en ping-kommando fra Ansible Control-noden for at sikre, at de er tilgængelige.

$ ansible -m ping all

Fra ovenstående output kan vi tydeligt se, at ping-kommandoen var vellykket, og vi var i stand til at teste tilgængelighed til alle knudepunkter.

I denne vejledning installerede og konfigurerede vi Ansible på kontrolnoden, der kører RHEL 8. Vi definerede senere fjernværterne i en statisk værtsfil og konfigurerede kontrolnoden til at oprette forbindelse til og styre de administrerede værter ved at opsætte SSH-adgangskodeløs godkendelse.