Hvordan installere og konfigurere en Ansible Control Node - Del 2


I forrige emne lærer du om grunnleggende Ansible-terminologier og grunnleggende konsepter. I dette emnet (del 2 av Ansible-serien) vil vi demonstrere hvordan du kan installere og konfigurere en Ansible-kontrollnode på RHEL 8.

I oppsettet vårt skal vi bruke 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

Hva er en Ansible Control Node?

En kontrollnode er en Linux-server som har Ansible installert på den og brukes til å administrere eksterne verter eller noder. Disse eksterne systemene er kjent som Managed Hosts eller Managed nodes.

I oppsettet ovenfor er kontrollnoden RHEL 8-serveren som Ansible vil bli installert på og Debian 10 og CentOS 8< er de administrerte vertene.

MERK: Ansible er bare installert på kontrollnoden og ikke de administrerte vertene.

Trinn 1: Installere Python 3

Som standard kommer RHEL 8 med Python 3, og du kan bekrefte versjonen av Python som er installert på serveren din ved å kjøre.

python3 -V

Hvis Python3 av en eller annen grunn ikke er installert, installer den ved å bruke følgende dnf-kommando.

dnf install python3

Hvis det finnes flere versjoner av PythonRHEL 8-systemet ditt, kan du angi Python 3 som standard Python-versjon ved å løpe.

alternatives --set python /usr/bin/python3

Trinn 2: Aktiver det offisielle RedHat-depotet

Etter å ha installert Python3, sørg for at du har aktivert RedHats offisielle depot for Ansible som vist nedenfor.

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

MERK: For at kommandoen ovenfor skal fungere, sørg for at du har registrert ditt RHEL 8 for RedHat-abonnement.

Trinn 3: Installer Ansible på RHEL 8

For å installere Ansible på kontrollnoden som er RHEL 8-systemet vårt, kjør kommandoen.

dnf install ansible -y

Når den er installert, kan du sjekke versjonen av Ansible installert ved å kjøre kommandoen.

ansible --version

Trinn 4: Opprette en statisk vertsinventarfil

Så langt har vi installert ansibleControl Node som er vår RHEL 8-server. De eksterne nodene som skal administreres av kontrollnoden, må defineres i en fil kalt inventory-filen. Inventarfilen er en ren tekstfil som ligger på kontrollnoden og består av de eksterne vertenes vertsnavn eller IP-adresser.

En statisk vertsfil er en ren tekstfil som inneholder en liste over administrerte noder definert av deres IP-adresser eller vertsnavn. La oss lage en statisk fil «hosts» i katalogen /etc/ansible/.

vi /etc/ansible/hosts

Deretter definerer du en gruppe eller grupper for de administrerte vertene dine. Vi har 2 administrerte verter som tidligere sett i oppsettet ved introduksjonen av dette emnet. Fra oppsettet vil den statiske vertsfilen bli definert som følger:

[webserver]
192.168.0.15

[database_server]
192.168.0.200

Lagre og avslutt inventarfilen.

Slik kjører du administrerte verter:

ansible all -i hosts --list-hosts

Så langt har vi klart å installere Ansible i kontrollnoden og definere de administrerte vertene i en statisk vertsfil som ligger på kontrollnoden.

Deretter skal vi se hvordan vi kan administrere eller kontrollere våre eksterne eller administrerte verter.

Trinn 5: Konfigurer Ansible Control Node for å koble til de eksterne nodene

For Ansible kontrollnoden (RHEL 8) for å administrere de eksterne vertssystemene (Debian 10 og CentOS 8) vi må sette opp passordløs SSH-autentisering til de eksterne vertene. For at dette skal skje, må du generere et SSH-nøkkelpar og lagre den offentlige nøkkelen til de eksterne nodene.

På Ansible-kontrollnoden logger du på som en vanlig bruker og generer SSH-nøkkelparet ved å kjøre kommandoen.

su tecmint
ssh-keygen

Deretter kopierer du den offentlige ssh-nøkkelen til eksterne noder som vist.

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

Etter å ha lagt til de offentlige nøklene til alle våre eksterne noder, skal vi utstede en ping-kommando fra Ansible Control-noden for å sikre at de er tilgjengelige.

ansible -m ping all

Fra utgangen ovenfor kan vi tydelig se at ping-kommandoen var vellykket, og vi var i stand til å teste tilgjengeligheten til alle nodene.

Konklusjon

I denne veiledningen har vi installert og satt opp Ansible på kontrollnoden som kjører RHEL 8. Vi definerte senere de eksterne vertene i en statisk vertsfil og konfigurerte kontrollnoden til å koble til og kontrollere de administrerte vertene ved å sette opp SSH-passordløs autentisering.