Hvordan installeres og konfigureres Ansible på Ubuntu?

Kom godt i gang med Ansible på Ubuntu for bedre miljøklargøring og konfigurationsstyring.

Configuration Management er et afgørende trin i DevOps livscyklus. Det hjælper med automatisering og orkestrering af it-infrastrukturen.

Der er flere værktøjer til konfigurationsstyring, for eksempel Puppet, Ansible, Chef og SaltStack. Og selvfølgelig er Ansible et af de mest populære værktøjer i DevOps. Det kan nemt administrere tusindvis af servere og din komplette it-infrastruktur.

Vi vil dække følgende i denne artikel.

  • Ansible installation
  • SSH nøgleudveksling
  • Ansible klient opsætning
  • Ansible test

Ansible installation

For at holde det enkelt, lad os prøve at bruge Ansible på to servere. En vil være ansible-server og en anden en ansible-klient med følgende IP.

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

Installationen er ligetil … det følgende skal gøres på alle de servere, hvor du vil bruge Ansible. I dette tilfælde på ovenstående begge servere.

  • Kør nedenstående kommando for at installere den nødvendige software, der kræves for at installere ansible.
[email protected]:~# apt install software-properties-common
  • Installer repository med ansible pakke.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Opdater det avancerede pakkeværktøj (apt)
[email protected]:~# apt update
  • Og endelig – kør kommandoen nedenfor for at installere
[email protected]:~# apt install ansible

Det vil tage et par sekunder at installere den nødvendige pakke.

  Min iPhone- eller iPad-skærm vil ikke rotere. Hvordan fikser jeg det?

Hvordan sikrer du, at den er installeret og dens version?

Nå, det er nemt. Du kan bruge –version syntaks med ansible til at finde ud af som nedenfor.

[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]:~#

Som du kan se, er Ansible 2.8.1 installeret, og det giver de nødvendige oplysninger såsom placering af konfigurationsfil, python-modul.

Dernæst skal vi udføre SSH-nøgleudveksling, så servér, og en klient kan tale med hinanden.

SSH nøgleudveksling

Ansible opretter forbindelse til sin klient gennem SSH (Secure shell).

Vi vil først generere en offentlig nøgle på ansible-serveren, som skal kopieres til ansible-klienten.

Sørg for, at du er logget ind som root-bruger.

  • Generer nøglen med kommandoen ssh-keygen som vist nedenfor
[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]:~#

Som du ville have bemærket, har den genereret en offentlig nøgle i .ssh-mappen. Den komplette sti er /root/.ssh/id_rsa.pub

  Brug den nye faneside som et dashboard til opgavestyringstjenester

Bemærk: Sørg for, at de private og offentlige nøglefiler ikke er verdenslæselige. Du kan liste filerne for at bekræfte dem.

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

Hvis du bemærker, at tilladelsen er forkert, kan du ændre den ved at bruge chmod-kommandoen

Eks:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Lad os kopiere den offentlige nøgle til Ansible vært, hvilken IP-adresse er 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#

Du kan se i outputtet ovenfor, at 1 nøgle er blevet tilføjet. Dette indikerer, at SSH-nøglen er udskiftet.

  Sådan rettes "Stol på denne computer", der ikke vises med en iPhone

Dernæst opsætter vi en Ansible-klient.

Ansible klientopsætning

Jeg antager, at du allerede har fulgt Ansible-installationstrinene på klientserveren som forklaret i de foregående trin.

Klient- eller værtsopsætning er intet andet end at gøre Ansible-serveren opmærksom på klienterne. Og for at gøre det:

  • Log ind på Ansible server
  • Gå til /etc/ansible
  • Tilføj følgende i værtsfilen ved at bruge din yndlingseditor
[Client] 
node1 ansible_ssh_host=10.0.0.25

Ansible test

Hvis du har fulgt alle trinene korrekt, vil du få en SUCCESS-meddelelse, når du kører nedenstående kommando på ansible-serveren.

[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 ovenfor pinger til klienten for at teste forbindelsen og bekræfte, om den er god eller ej.

Konklusion

Jeg håber, at dette giver dig en idé til at komme i gang med installation og leg. Hold dig opdateret for flere Ansible-tutorials, eller tjek også dette Udemy Mastering Ansible-kursus.