Ansiblen asentaminen ja testaaminen Linuxissa

Ansible on laajalti käytetty Python-kielellä kirjoitettu konfiguraationhallintatyökalu, joka auttaa konfiguroimaan yhtä tai useampaa konetta samanaikaisesti. Ansiblea voidaan käyttää alla oleviin tehtäviin

  • Konfigurointi tyhjästä yhdestä tai useammasta solmusta
  • Konfiguraatioiden käyttöönotot
  • Konfiguraatiomuutokset
  • Täydennykset
  • Palvelunhallinta
  • ja moniin muihin tehtäviin

Ansiblea käytetään laajalti sen yksinkertaisuuden vuoksi. Ansible-koodi on kirjoitettu YAML-kielellä myös, se ei tarvitse agenttia asennettavaksi etäkoneelle. Ansible käyttää porttia 22 (SSH) yhteyden muodostamiseen etäkoneeseen ja tarvittavien muutosten tekemiseen.

Jokainen kone, joka voi muodostaa yhteyden etäkoneeseen porttiin 22, voi toimia ohjaavana solmuna. Kontrolloivaan solmuun voi asentaa Ansiblen ja hallittu solmu saa hallinnan kontrolloivista solmuista.

Katsotaanpa Ansiblen asennusta ohjaussolmuun.

Asenna Ansible CentOS 7:ään:

Koska Python on ainoa edellytys Ansiblen asentamiselle, asennetaan Python suorittamalla alla oleva komento.

$sudo yum install python3 -y

Asennetaan Ansible CentOS 7:lle varmistamalla ensin, että CentOS 7 EPEL-tietovarasto on asennettu. Suorita alla oleva komento asentaaksesi epel-repository.

$sudo yum install epel-release

Päivitä järjestelmän paketti-indeksi suorittamalla alla oleva update-komento.

$sudo yum update -y

Kun arkisto on asennettu, asenna Ansible yum-paketinhallinnan avulla. Suorita alla mainittu komento asentaaksesi Ansible.

$sudo yum install ansible -y

Varmista onko Ansible asennettu oikein ja sen versio.

$ansible -v

Asenna Ansible CentOS 8:lle:

Katsotaanpa asennusvaiheet CentOS 8:lle. Asennetaan python CentOS 8:lle.

$sudo dnf install python3

Kun python on asennettu, asennetaan EPEL-repo suorittamalla alla oleva komento.

$sudo dnf install epel-release -y

Päivitetään järjestelmän paketti-indeksi suorittamalla alla oleva update-komento.

$sudo dnf update -y

Olemme nyt valmiita asentamaan Ansiblen. Suorita alla oleva komento Ansiblen asentamiseksi.

$sudo dnf install ansible -y

Varmista, onko Ansible asennettu oikein ja sen versio.

$ansible -v

Asenna Ansible Ubuntuun:

Python on nykyään oletuspaketti useimmissa Linux-jakeluissa. Jos sinulla ei ole pythonia asennettuna, suorita alla oleva komento asentaaksesi python-paketin.

$sudo apt-get install python3

Asenna Ansible Ubuntussa, asennetaan ensin arkisto suorittamalla alla oleva komento.

$sudo apt-add-repository ppa:ansible/ansible

Päivitetään järjestelmän paketti-indeksi suorittamalla alla oleva update-komento.

$sudo apt-get update -y

Asennetaan nyt Ansible.

$sudo apt-get install -y ansible

Varmennetaan, onko Ansible asennettu oikein ja sen versio.

$ansible -v

Asenna Ansible Python PIP:llä CentOS-, Debian- ja Ubuntu-käyttöjärjestelmiin:

Käyttämästäsi käyttöjärjestelmästä riippumatta voit asentaa Ansiblen Python-paketin asennusohjelmalla. Suoritetaan alla oleva komento python3-pipin asentamiseksi.

CentOS 7:lle ja sitä nuoremmille:

$sudo yum install python3 python3-pip -y

CentOS 8:

$sudo dnf install python3 python3-pip -y

Ubuntulle ja Debianille:

$sudo apt-get install python3 python3-pip

Koska meillä on python ja pip asennettuna, suoritetaan alla oleva komento millä tahansa käyttöjärjestelmällä Ansiblen asentamiseksi.

$sudo pip3 install ansible

Varmennetaan, onko Ansible asennettu oikein ja sen versio.

$ansible -v

Ansible-ohjaimen isäntien konfigurointi:

Meidän on ensin määritettävä ”hosts”- tiedosto, ennen kuin voimme alkaa kommunikoida muiden solmujen kanssa. Tässä tiedostossa on kaikki hallittujen solmujen IP- tai isäntänimet.

Huomautus: Aina ei ole tarpeen käyttää hosts-tiedostoa yhteyden muodostamiseen hallittuihin solmuihin. Mutta silloin meidän on joka kerta käytettävä hallittujen solmujen palvelimen IP- tai isäntänimeä suorittaessamme jokaista komentoa.

Luo tiedosto (jos sitä ei vielä ole) pääkäyttäjän oikeuksin suorittamalla alla oleva komento:

$sudo touch /etc/ansible/hosts

Katsotaanpa ja ymmärretään esimerkkihostitiedostoa ennen tiedostoon kirjoittamista:


alias ansible_ssh_host=your_node_server_ip

Hostitiedoston tulee noudattaa yllä olevaa syntaksia. Katsotaanpa jokaista parametria.

: Tämä parametri luo ryhmän. Kaikki hallittujen solmujen IP-osoitteet tai isäntänimet group_name-parametrin alla kuuluvat samaan ryhmään. Jos infrastruktuurissamme on esimerkiksi useita verkkopalvelimia, voimme lisätä tähän kaikki IP-osoitteet tai hallittavan solmun isäntänimet.

alias: Tällä parametrilla annetaan hallittavan solmun palvelimelle alias, jolla se voidaan tunnistaa. Jos infrastruktuurissamme on esimerkiksi useita verkkopalvelimia, voimme antaa aliaksiksi host1, host2 ja host3. Aliaksen antamisen tärkein etu on se, että kun suoritamme Ansible-komennon muuttaaksemme yksittäisen palvelimen konfiguraatiota, voimme käyttää aliasta tunnistaaksemme ja suorittaaksemme tarvittavan tehtävän palvelimella.

ansible_ssh_host=your_node_server_ip: Tämä parametri osoittaa aliaksen hallitun solmun IP-osoitteeseen tai isäntänimeen.

Käytämme CentOS 8:aa hallittavana solmuna Ansiblen kanssa. Kuten edellä mainittiin, Ansible käyttää etä-isännän porttia 22 yhteyden muodostamiseen.

Oletamme, että CentOS-ohjatun solmupalvelimemme IP-osoitteet ovat 192.168.0.2, 192.168.0.3 ja 192.168.0.4.

Salliaksemme Ansible-ohjaussolmun kommunikoida ohjattavien solmujen kanssa, meidän on varmistettava, että ohjattaviin solmupisteisiin pääsee käsiksi portissa 22, joka on SSH-portti. Suorita alla oleva komento vahvistaaksesi yhteyden yksi kerrallaan kaikissa kolmessa hallittavassa solmussa ohjaimesta.

$ssh [email protected]
$ssh [email protected]
$ssh [email protected]

Sinulta kysytään kaikkien solmujen pääkäyttäjän salasana. Ansible toimii erittäin sujuvasti, jos Ansible-ohjaimen ja hallittujen solmujen välille on määritetty salasanaton todennus. Ansible-komennon eri parametreilla myös salasanatodennus voi toimia.

Koska olemme konfiguroineet ssh-yhteyden Ansible-ohjaimen ja hallittujen solmujen välille, konfiguroidaan hosts-tiedosto ottamaan yhteys kaikkiin hallittuihin solmuihin. Kuten aiemmin mainittiin, voimme lisätä useita solmupalvelimen aliaksia yhteen ryhmään. Tässä tapauksessa lisätään kaikki kolme solmua ja annetaan aliaksiksi host1, host2 ja host3. Kaikkien hallittujen solmujen tietojen lisäämisen jälkeen hosts-tiedostomme pitäisi näyttää seuraavalta. Suorita alla oleva komento muokataksesi aiemmin luotua hosts-tiedostoa.

Avaa tiedosto root-oikeuksilla suorittamalla alla oleva komento:

$sudo vi /etc/ansible/hosts

Lisätään alla mainittu konfiguraatio hosts-tiedostoon.


host1 ansible_ssh_host=192.168.0.2
host2 ansible_ssh_host=192.168.0.3
host3 ansible_ssh_host=192.168.0.4

Tässä olemme lisänneet kaikki hallittujen solmujen IP-osoitteet ja aliakset ryhmään nimeltä node_servers.

Yritetään nyt muodostaa yhteys hallittuihin solmuihin Ansible-ohjaimesta.

$ansible -m ping node_servers

Ylläoleva komento käyttää ping-moduulia muodostamaan yhteyden ”node_servers”-ryhmään, jonka määrittelimme edellä hosts-tiedostossa.

Voit kohdata virheitä eri syistä.

  1. Ansible yrittää oletusarvoisesti muodostaa yhteyden hallittuun solmuun käyttämällä nykyistä käyttäjänimeäsi, jos et ole antanut sellaista. Jos kyseistä käyttäjää ei ole olemassa solmupalvelimella, saat alla olevan virheilmoituksen.
  2. Jos ssh-portti 22 ei ole avoinna yhteydelle hallituissa solmuissa. (Kuten aiemmin mainittiin, Ansible muodostaa yhteyden ssh-porttiin)
  3. Jos hosts-tiedostossa oleva IP-osoite ei ole oikea.

Jos jokin edellä mainituista ehdoista epäonnistuu, saat alla olevan virheilmoituksen.

host1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
host2 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
host3 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}

Käsketään Ansibelle erityisesti, että sen pitäisi muodostaa yhteys ”node_servers”-ryhmän hallittuihin solmuihin james-käyttäjällä. Luodaan group_vars-hakemisto alla mainitulla tavalla.

$sudo mkdir /etc/ansible/group_vars

Tässä hakemistossa olevia tiedostoja käytetään nimenomaan muuttujien konfigurointiin, joita voimme käyttää Ansiblen pelikirjoissa.

Luotaan muuttujatiedosto asetuksiamme varten suorittamalla alla oleva komento:

$sudo vim /etc/ansible/group_vars/node_servers.yml

Lisätään tiedostoon alla oleva koodi:

---
ansible_ssh_user: james

YML-tiedosto alkaa aina ensimmäisellä rivillä ”—”. Tallennetaan ja suljetaan tämä tiedosto, kun olet valmis. Nyt Ansible käyttää aina james-käyttäjää node_servers-ryhmässä riippumatta siitä, millä nykyisellä käyttäjällä suoritat komennon.

Tarkista hallitun solmun yhteys:

Nyt kun meillä on hostit määritetty ja tarpeeksi konfigurointitietoja, jotta voimme muodostaa onnistuneesti yhteyden hallittaviin solmuihin, voimme kokeilla samaa komentoa, jonka ajoimme aiemmin.

$ansible -m ping servers 

Ansible palauttaa tulosteen näin:

host1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
host2 | SUCCESS => {
"changed": false,
"ping": "pong"
}

host3 | SUCCESS => { ”changed”: false, ”ping”: ”pong”}

Tämä on perustesti, jolla varmistetaan, että Ansible on yhteydessä hallittuihin solmuihinsa.

Johtopäätös:

Hallituissa solmuissa ei tarvitse käyttää CentOS-käyttöjärjestelmää. Voit käyttää samaa testikokoonpanoa, jota olemme käyttäneet edellä CentOS:lle, RedHatille, Ubuntulle ja mille tahansa muulle Linux-jakelulle.

How To Install and Test Ansible on Linux

Vastaa

Sähköpostiosoitettasi ei julkaista.