Ansiblen avulla voidaan hallita ja hallinnoida useita palvelimia keskitetystä tietokoneesta. Se on palvelinten hallintatyökalu. Ansible ei tarvitse mitään konfigurointia palvelinpuolella kuten Chef tai Puppet. Asennat vain Ansiblen tietokoneellesi ja hallitset tai hallinnoit palvelimia SSH:n kautta. Se on hyvin yksinkertainen ja helppokäyttöinen. Tässä artikkelissa näytän, miten Ansible asennetaan ja käytetään CentOS 8 -käyttöjärjestelmässä. Aloitetaan siis.

Ansiblen asentaminen:

Ansible on saatavilla CentOS 8:n EPEL-arkistossa. Voit siis helposti asentaa Ansiblen CentOS 8:aan.

Päivitä ensin DNF-pakettivaraston välimuisti seuraavalla komennolla:

$ sudo dnf makecache

Nyt otat EPEL-varaston käyttöön asentamalla epel-release-paketin seuraavalla komennolla:

$ sudo dnf install epel-release

Vahvista asennus painamalla Y ja paina sitten <Enter>.

epel-release-paketin pitäisi olla asennettu ja EPEL-tietovaraston pitäisi olla käytössä.

Päivitä nyt DNF-pakettivaraston välimuisti uudelleen seuraavalla komennolla:

$ sudo dnf makecache

Asenna nyt Ansible seuraavalla komennolla:

$ sudo dnf install ansible

Vahvista asennus painamalla Y ja paina sitten <Enter>.

DNF:n pitäisi aloittaa kaikkien tarvittavien pakettien lataaminen internetistä.

Sinua saatetaan pyytää hyväksymään EPEL-arkiston GPG-avain. Hyväksy se painamalla Y ja paina sitten <Enter>.

DNF:n pitäisi aloittaa kaikkien ladattujen pakettien asentaminen.

Tässä vaiheessa Ansiblen pitäisi olla asennettuna.

Jatka nyt seuraava komento:

$ ansible –version

Kuten näet, minulla on käytössä Ansible 2.9.3 ja se toimii hienosti.

Palvelimien konfigurointi Ansiblea varten:

Palvelimien hallitsemiseksi tai hallinnoimiseksi Ansibella, sinun on asennettava SSH-palvelin ja sen on oltava käynnissä palvelimilla. Palvelimien SSH-portin on oltava auki ja palvelimiin on päästävä käsiksi Ansible-isännästä. Tämä on ainoa vaatimus Ansiblen käytölle.

Tässä artikkelissa käytän neljää virtuaalikonetta (VM) (2 Ubuntu Server 18.04 LTS VM:ää ja 2 Debian 10 VM:ää) Ansible-palvelinten hallinnan ja ylläpidon perusteiden esittelyyn.

4 VM:ää ovat:

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

Palvelimien IP-osoitteita voit käyttää niiden hallintaan tai hallinnointiin Ansibella. Voit myös käyttää palvelimien DNS-nimiä.

Tässä artikkelissa käytän /etc/hosts-tiedostoa VM:ien IP-osoitteiden DNS-resoluutioon.

Jos haluat seurata mukana, avaa /etc/hosts-tiedosto vi-tekstieditorilla seuraavasti:

$ sudo vi /etc/hosts

Lisää nyt alla olevassa kuvakaappauksessa merkityt rivit ja tallenna tiedosto.

Luo nyt SSH-avain CentOS 8 Ansible -isäntäsi seuraavasti:

$ ssh-keygen

Paina <Enter>.

Paina <Enter>.

Paina <Enter>.

SSH-avaimen pitäisi olla luotu.

Jatkossa sinun on ladattava SSH-avain kaikille palvelimille, joita haluat hallita Ansibella.

Kopioida SSH-avain vm1.linuxhint.local-palvelimelle, suorita seuraava komento:

$ ssh-copy-id [email protected]

Kirjoita nyt yes ja paina <Enter>.

Kirjoita nyt kirjautumissalasana vm1.linuxhint.local VM ja paina <Enter>.

SSH-avaimen pitäisi olla kopioitu.

Tee sama vm2.linuxhint.local, vm3.linuxhint.local ja vm4.linuxhint.local palvelimelle.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Kun olet kopioinut SSH-avaimen VM-tietokoneisiin, sinun pitäisi pystyä käyttämään SSH:ta ilman salasanaa, kuten näet alla olevasta kuvakaappauksesta.

Suorita nyt seuraava komento jokaisella palvelimella salliaksesi sudo-oikeudet ilman salasanaa kirjautuvalle käyttäjälle. Tämä vaaditaan, jotta Ansible voi suorittaa kaikki root-komennot.

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

Kaikki palvelimet ovat nyt valmiita konfiguroitaviksi tai hallittaviksi Ansibella.

Ansiblen käyttäminen:

Ansible pitää luetteloa kaikista hallinnoimistaan isännöintilaitteista inventaariotiedostossa. Ansiblen inventaariotiedosto on vain yksinkertainen tavallinen tekstitiedosto.

Luotaan ensin uusi Ansible-projektin hakemisto ~/ansible/, jonka jälkeen luodaan inventaariotiedostomme.

$ mkdir ~/ansible

Siirry nyt hakemistoon ~/ansible.

$ cd ~/ansible

Luo nyt Ansible inventaariotiedosto seuraavasti. Voit kutsua tätä tiedostoa miksi tahansa. Minä kutsun sitä nimellä hosts.

$ vi hosts

Nyt voit lisätä palvelimesi seuraavasti. Tässä käytetään ansible_user-vaihtoehtoa määrittämään käyttäjä, jota Ansible käyttää komentojen suorittamiseen näillä palvelimilla. Se on yleensä palvelimen kirjautumiskäyttäjä.

Voit myös sekoittaa palvelimien IP-osoitteet ja DNS-nimet inventaariotiedostoon.

Voit myös ryhmitellä palvelimia. Tässä minulla on 2 ryhmää, webserver ja dbserver.

Webserver-ryhmään olen lisännyt vm1- ja vm2-palvelimet. dbserver-ryhmään olen lisännyt vm3- ja vm4-palvelimet.

Kun inventaariotiedosto on luotu, voit käyttää inventaariotiedostoa Ansiblen -i-vaihtoehdolla.

Voit listata kaikki isännät inventaariotiedostosta seuraavasti:

$ ansible -i hosts –list-hosts all

Voit tarkistaa, ovatko kaikki isännät aktiivisia seuraavasti:

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

Kuten näet, kaikki hostit ovat aktiivisia.

Voit myös pingata kaikki yhden ryhmän hostit.

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

Voit ajaa Shell-komentoja Ansiblen avulla seuraavasti:

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

Voit myös ajaa shell-komentoja (sudo-oikeuksilla) seuraavasti.

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

Voit esimerkiksi päivittää APT-pakettivaraston välimuistin webserver-ryhmään kuuluvilla isännillä Ansiblea käyttäen seuraavasti:

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

Kuten näet, APT-pakettivaraston välimuisti päivittyy kaikille webserver-ryhmän hosteille.

Yritetään asentaa Apache 2 -verkkopalvelin kaikille webserver-ryhmän isännille.

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

Apache-verkkopalvelimen pitäisi olla asennettuna kaikkiin webserver-ryhmän hosteihin.

Kuten näet, Apache-verkkopalvelin toimii kaikilla webserver-ryhmän isännillä.

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

Samalla tavalla voit suorittaa minkä tahansa komennon kaikilla dbserver-ryhmän hosteilla.

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

Voit myös käyttää Ansible Playbookia palvelinten hallintaan helpommin. Ansible Playbook ei kuulu tämän artikkelin aihepiiriin. Lue Ansiblen dokumentaatiosta lisätietoja Ansible Playbookista.

Kiitos, että luit tämän artikkelin.

Vastaa

Sähköpostiosoitettasi ei julkaista.