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
Indholdsfortegnelse
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.
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
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.
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.