Cum se instalează și se configurează Ansible pe Ubuntu?

Noțiuni introductive cu Ansible pe Ubuntu pentru o mai bună asigurare a mediului și o gestionare a configurației.

Managementul configurației este o etapă crucială în ciclul de viață DevOps. Ajută la automatizarea și orchestrarea infrastructurii IT.

Există mai multe instrumente pentru gestionarea configurației, de exemplu, Puppet, Ansible, Chef și SaltStack. Și, desigur, Ansible este unul dintre cele mai populare instrumente din DevOps. Poate gestiona cu ușurință mii de servere și infrastructura dumneavoastră IT completă.

Vom acoperi următoarele în acest articol.

  • Instalare Ansible
  • Schimb de chei SSH
  • Configurarea clientului Ansible
  • Testarea Ansible

Instalare Ansible

Pentru a rămâne simplu, să încercăm să folosim Ansible pe două servere. Unul va fi ansible-server și altul ansible-client cu următorul IP.

  • ansible-server – 10.0.0.1
  • ansible-client – ​​10.0.0.25

Instalarea este simplă… următoarele trebuie făcute pe toate serverele pe care doriți să utilizați Ansible. În acest caz, deasupra ambelor servere.

  • Rulați comanda de mai jos pentru a instala software-ul necesar necesar pentru instalarea ansible.
[email protected]:~# apt install software-properties-common
  • Instalați depozitul cu pachetul ansible.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Actualizați instrumentul avansat de ambalare (apt)
[email protected]:~# apt update
  • Și, în sfârșit, rulați comanda de mai jos pentru a instala
[email protected]:~# apt install ansible

Va dura câteva secunde pentru a instala pachetul necesar.

Cum vă asigurați că este instalat și versiunea sa?

Ei bine, este ușor. Puteți utiliza sintaxa –version cu ansible pentru a afla ca mai jos.

[email protected]:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
[email protected]:~#

După cum puteți vedea, Ansible 2.8.1 este instalat și oferă informațiile necesare, cum ar fi locația fișierului de configurare, modulul python.

  De ce folosesc încă un Mac PowerPC vechi în 2020

Apoi, trebuie să facem schimb de chei SSH, astfel încât să servim și un client să poată vorbi unul cu celălalt.

Schimb de chei SSH

Ansible se conectează la clientul său prin SSH (Secure shell).

Mai întâi vom genera o cheie publică pe serverul ansible, care trebuie copiată pe clientul ansible.

Asigurați-vă că sunteți autentificat ca utilizator root.

  • Generați cheia utilizând comanda ssh-keygen, așa cum se arată mai jos
[email protected]:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
[email protected]:~#

După cum ați fi observat, a generat o cheie publică în folderul .ssh. Calea completă este /root/.ssh/id_rsa.pub

Notă: asigurați-vă că fișierele cu cheie privată și publică nu pot fi citite în întreaga lume. Puteți lista fișierele pentru a le verifica.

cd /root/.ssh
[email protected]:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

Dacă observați că permisiunea este greșită, atunci o puteți modifica folosind comanda chmod

Ex:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Să copiem cheia publică pe gazda Ansible, a cărui adresă IP este 192.168.56.101

[email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[email protected]:~/.ssh#

Puteți vedea în rezultatul de mai sus, 1 cheie a fost adăugată cu succes. Aceasta indică faptul că cheia SSH este schimbată.

  Cum să configurați un cont Spotify Kids

În continuare, vom configura un client Ansible.

Configurare client Ansible

Presupun că ați urmat deja pașii de instalare a Ansible pe serverul client, așa cum a fost explicat în pașii anteriori.

Configurarea clientului sau a gazdei nu este altceva decât a face serverul Ansible conștient de clienți. Și, pentru a face asta:

  • Conectați-vă la serverul Ansible
  • Accesați /etc/ansible
  • Adăugați următoarele în fișierul hosts folosind editorul dvs. preferat
[Client] 
node1 ansible_ssh_host=10.0.0.25

Testul Ansible

Dacă ați urmat corect toți pașii, veți primi un mesaj de SUCCES atunci când executați comanda de mai jos pe serverul ansible.

[email protected]:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
[email protected]:~/.ssh#

Thea de mai sus trimite un ping către client pentru a testa conectivitatea și a confirma dacă este bun sau nu.

Concluzie

Sper că acest lucru vă oferă o idee pentru a începe cu instalarea și jocul. Rămâneți pe fază pentru mai multe tutoriale Ansible sau consultați și acest curs Udemy Mastering Ansible.