Si të instaloni dhe konfiguroni Ansible në Debian 11
Prezantimi
Sistemet e menaxhimit të konfigurimit janë krijuar për të thjeshtuar procesin e kontrollit të një numri të madh serverësh, për administratorët dhe ekipet e operacioneve. Ato ju lejojnë të kontrolloni shumë sisteme të ndryshme në një mënyrë të automatizuar nga një vend qendror.
Ndërsa ka shumë mjete të njohura të menaxhimit të konfigurimit të disponueshëm për sistemet Linux, të tilla si Ansible është një alternativë e shkëlqyer për këto opsione sepse ofron një arkitekturë që nuk kërkon instalim të softuerit të veçantë në nyje, duke përdorur SSH për të ekzekutuar detyrat e automatizimit dhe YAML dosjet për të përcaktuar detajet e provizionimit.
Në këtë udhëzues, ne do të diskutojmë se si të instaloni Ansible në një server Debian 11 dhe do të shqyrtojmë disa baza se si të përdorni këtë softuer. Për një përmbledhje më të nivelit të lartë të Ansible si mjet i menaxhimit të konfigurimit, ju lutemi referojuni Një hyrje në menaxhimin e konfigurimit me Ansible.
Parakushtet
Për të ndjekur këtë tutorial, do t'ju duhet:
- Një nyje kontrolli Ansible: Nyja e kontrollit Ansible është makina që do të përdorim për t'u lidhur dhe kontrolluar hostet Ansible mbi SSH. Nyja juaj e kontrollit Ansible mund të jetë ose makina juaj lokale ose një server i dedikuar për ekzekutimin e Ansible, megjithëse ky udhëzues supozon se nyja juaj e kontrollit është një sistem Debian 11. Sigurohuni që nyja e kontrollit të ketë:
- Një përdorues jo-root me privilegje sudo. Për ta konfiguruar këtë, mund të ndiqni Hapat 2 dhe 3 të Udhëzuesit tonë fillestar të konfigurimit të serverit për Debian 11. Megjithatë, ju lutemi vini re se nëse jeni duke përdorur një server në distancë si nyjen tuaj të kontrollit Ansible, duhet të ndiqni çdo hap të këtij udhëzuesi. Duke vepruar kështu do të konfiguroni një mur zjarri në server me
ufw
dhe do të mundësojë qasjen e jashtme në profilin tuaj të përdoruesit jo-root, të cilat të dyja do të ndihmojnë në mbajtjen e sigurt të serverit në distancë. - Një palë kyçe SSH e lidhur me këtë përdorues. Për ta konfiguruar këtë, mund të ndiqni Hapin 1 të udhëzuesit tonë se si të konfiguroni çelësat SSH në Debian 11.
Një ose më shumë hoste Ansible: Një host Ansible është çdo makinë që nyja juaj e kontrollit Ansible është konfiguruar për të automatizuar. Ky udhëzues supozon se hostet tuaj Ansible janë serverë të largët Debian 11. Sigurohuni që çdo host Ansible të ketë:
- Çelësi publik SSH i nyjës së kontrollit Ansible u shtua te
çelësat e autorizuar
të një përdoruesi të sistemit. Ky përdorues mund të jetë ose root ose një përdorues i rregullt me privilegje sudo. Për ta konfiguruar këtë, mund të ndiqni Hapin 2 se si të konfiguroni çelësat SSH në Debian 11.
Hapi 1 - Instalimi i Ansible
Për të filluar përdorimin e Ansible si një mjet për të menaxhuar infrastrukturën e serverit tuaj, duhet të instaloni softuerin Ansible në makinë që do të shërbejë si nyja e kontrollit Ansible.
Nga nyja juaj e kontrollit, ekzekutoni komandën e mëposhtme për të përfshirë PPA-në zyrtare të projektit (arkivi i paketave personale) në listën e burimeve të sistemit tuaj:
- sudo apt-add-repository ppa:ansible/ansible
Shtypni
ENTER
kur ju kërkohet të pranoni shtesën PPA.Më pas, rifreskoni indeksin e paketave të sistemit tuaj në mënyrë që ai të jetë në dijeni të paketave të disponueshme në PPA-në e sapopërfshirë:
- sudo apt update
Pas këtij përditësimi, mund të instaloni softuerin Ansible me:
- sudo apt install ansible
Nyja juaj e kontrollit Ansible tani ka të gjithë softuerin e nevojshëm për të administruar hostet tuaj. Më pas, ne do të shqyrtojmë se si t'i shtoni hostet tuaj në skedarin e inventarit të nyjës së kontrollit, në mënyrë që ai t'i kontrollojë ato.
Hapi 2 - Vendosja e skedarit të inventarit
skedari i inventarit përmban informacione për hostet që do të menaxhoni me Ansible. Ju mund të përfshini diku nga një deri në disa qindra serverë në skedarin tuaj të inventarit, dhe hostet mund të organizohen në grupe dhe nëngrupe. Skedari i inventarit përdoret gjithashtu shpesh për të vendosur variabla që do të jenë të vlefshme vetëm për hoste ose grupe specifike, në mënyrë që të përdoren brenda librave të lojërave dhe shablloneve. Disa variabla mund të ndikojnë gjithashtu në mënyrën se si ekzekutohet një libër, si variabli
ansible_python_interpreter
që do ta shohim në një moment.Për të modifikuar përmbajtjen e inventarit tuaj të parazgjedhur Ansible, hapni skedarin
/etc/ansible/hosts
duke përdorur redaktuesin e tekstit të zgjedhur, në nyjen tuaj të kontrollit Ansible:- sudo nano /etc/ansible/hosts
Shënim: Megjithëse Ansible zakonisht krijon një skedar të paracaktuar të inventarit në
etc/ansible/hosts
, ju jeni i lirë të krijoni skedarë inventar në çdo vendndodhje që i përshtatet më mirë nevojave tuaja. Në këtë rast, do t'ju duhet të siguroni shtegun për skedarin tuaj të inventarit të personalizuar me parametrin-i
kur ekzekutoni komandat dhe librat e lojërave Ansible. Përdorimi i skedarëve të inventarit për çdo projekt është një praktikë e mirë për të minimizuar rrezikun e ekzekutimit të një libër lojërash në grupin e gabuar të serverëve.Skedari i parazgjedhur i inventarit i ofruar nga instalimi i Ansible përmban një numër shembujsh që mund t'i përdorni si referenca për konfigurimin e inventarit tuaj. Shembulli i mëposhtëm përcakton një grup të quajtur
[serverët]
me tre serverë të ndryshëm në të, secili i identifikuar nga një pseudonim i personalizuar: server1, server2 dhe server3. Sigurohuni që të zëvendësoni IP-të e theksuara me adresat IP të hosteve tuaj Ansible.[servers] server1 ansible_host=203.0.113.111 server2 ansible_host=203.0.113.112 server3 ansible_host=203.0.113.113 [all:vars] ansible_python_interpreter=/usr/bin/python3
Nëngrupi
all:vars
vendos parametrin pritësansible_python_interpreter
që do të jetë i vlefshëm për të gjithë hostet e përfshirë në këtë inventar. Ky parametër siguron që serveri në distancë përdor/usr/bin/python3
Python 3 të ekzekutueshëm në vend të/usr/bin/python
(Python 2.7), i cili nuk është i pranishëm në versionet e fundit të Debian.Kur të keni mbaruar, ruajeni dhe mbyllni skedarin duke shtypur
CTRL+X
më pasY
dheENTER
për të konfirmuar ndryshimet tuaja.Sa herë që dëshironi të kontrolloni inventarin tuaj, mund të ekzekutoni:
- ansible-inventory --list -y
Do të shihni dalje të ngjashme me këtë, por që përmban infrastrukturën tuaj të serverit siç përcaktohet në skedarin tuaj të inventarit:
Outputall: children: servers: hosts: server1: ansible_host: 203.0.113.111 ansible_python_interpreter: /usr/bin/python3 server2: ansible_host: 203.0.113.112 ansible_python_interpreter: /usr/bin/python3 server3: ansible_host: 203.0.113.113 ansible_python_interpreter: /usr/bin/python3 ungrouped: {}Tani që keni konfiguruar skedarin tuaj të inventarit, keni gjithçka që ju nevojitet për të testuar lidhjen me hostet tuaj Ansible.
Hapi 3 - Testimi i lidhjes
Pas konfigurimit të skedarit të inventarit për të përfshirë serverët tuaj, është koha të kontrolloni nëse Ansible është në gjendje të lidhet me këta serverë dhe të ekzekutojë komanda përmes SSH.
Për këtë udhëzues, ne do të përdorim llogarinë Debian root sepse kjo është zakonisht e vetmja llogari e disponueshme si parazgjedhje në serverët e krijuar rishtazi. Nëse hostet tuaj Ansible tashmë kanë krijuar një përdorues të rregullt sudo, ju inkurajoheni ta përdorni atë llogari në vend të kësaj.
Ju mund të përdorni argumentin
-u
për të specifikuar përdoruesin e sistemit në distancë. Kur nuk ofrohet, Ansible do të përpiqet të lidhet si përdoruesi aktual i sistemit në nyjen e kontrollit.Nga makina juaj lokale ose nyja e kontrollit Ansible, ekzekutoni:
- ansible all -m ping -u root
Kjo komandë do të përdorë modulin e integruar
ping
të Ansible për të ekzekutuar një test lidhjeje në të gjitha nyjet nga inventari juaj i paracaktuar, duke u lidhur si root. Moduliping
do të testojë:- nëse hostet janë të aksesueshëm;
- nëse keni kredenciale të vlefshme SSH;
- nëse hostet janë në gjendje të ekzekutojnë module Ansible duke përdorur Python.
Ju duhet të merrni dalje të ngjashme me këtë:
Outputserver1 | SUCCESS => { "changed": false, "ping": "pong" } server2 | SUCCESS => { "changed": false, "ping": "pong" } server3 | SUCCESS => { "changed": false, "ping": "pong" }Nëse kjo është hera e parë që po lidheni me këta serverë përmes SSH, do t'ju kërkohet të konfirmoni vërtetësinë e hosteve me të cilët po lidheni përmes Ansible. Kur të kërkohet, shkruani
po
dhe më pas shtypniENTER
për të konfirmuar.Pasi të merrni një përgjigje
pong
nga një host, do të thotë që jeni gati të ekzekutoni komandat dhe librat e lojërave Ansible në atë server.Shënim: Nëse nuk jeni në gjendje të merrni një përgjigje të suksesshme nga serverët tuaj, kontrolloni Udhëzuesin tonë të fletës së mashtrimit Ansible për më shumë informacion se si të ekzekutoni komandat Ansible me opsione të ndryshme lidhjeje.
Hapi 4 - Ekzekutimi i komandave ad-hoc (opsionale)
Pasi të konfirmoni se nyja juaj e kontrollit Ansible është në gjendje të komunikojë me hostet tuaj, mund të filloni të ekzekutoni komandat ad-hoc dhe librat e lojës në serverët tuaj.
Çdo komandë që do të ekzekutonit normalisht në një server të largët mbi SSH mund të ekzekutohet me Ansible në serverët e specifikuar në skedarin tuaj të inventarit. Si shembull, mund të kontrolloni përdorimin e diskut në të gjithë serverët me:
- ansible all -a "df -h" -u root
Outputserver1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 798M 624K 798M 1% /run /dev/vda1 155G 2.3G 153G 2% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 798M 0 798M 0% /run/user/0 server2 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 608K 394M 1% /run /dev/vda1 78G 2.2G 76G 3% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 395M 0 395M 0% /run/user/0 ...Komanda e theksuar
df -h
mund të zëvendësohet nga çdo komandë që dëshironi.Ju gjithashtu mund të ekzekutoni module Ansible përmes komandave ad-hoc, ngjashëm me atë që kemi bërë më parë me modulin
ping
për testimin e lidhjes. Për shembull, ja se si mund të përdorim modulinapt
për të instaluar versionin më të fundit tëvim
në të gjithë serverët në inventarin tuaj:- ansible all -m apt -a "name=vim state=latest" -u root
Ju gjithashtu mund të synoni hoste individualë, si dhe grupe dhe nëngrupe, kur ekzekutoni komandat Ansible. Për shembull, kjo është mënyra se si do të kontrollonit
kohën e funksionimit
të çdo hosti në grupinserverët
:- ansible servers -a "uptime" -u root
Ne mund të specifikojmë hoste të shumtë duke i ndarë me dy pika:
- ansible server1:server2 -m ping -u root
Për më shumë informacion se si të përdorni Ansible, duke përfshirë mënyrën e ekzekutimit të librave të luajtjes për të automatizuar konfigurimin e serverit, mund të kontrolloni Udhëzuesin tonë të referencës Ansible.
konkluzioni
Në këtë udhëzues, ju keni instaluar Ansible dhe keni vendosur një skedar inventar për të ekzekutuar komanda ad-hoc nga një nyje kontrolli Ansible.
Pasi të keni konfirmuar se jeni në gjendje të lidhni dhe kontrolloni infrastrukturën tuaj nga një makinë kontrolluese qendrore Ansible, mund të ekzekutoni çdo komandë ose libër lojërash që dëshironi në ato hoste.
Për më shumë informacion se si të përdorni Ansible, shikoni Udhëzuesin tonë të fletës së mashtrimit Ansible.
- Një përdorues jo-root me privilegje sudo. Për ta konfiguruar këtë, mund të ndiqni Hapat 2 dhe 3 të Udhëzuesit tonë fillestar të konfigurimit të serverit për Debian 11. Megjithatë, ju lutemi vini re se nëse jeni duke përdorur një server në distancë si nyjen tuaj të kontrollit Ansible, duhet të ndiqni çdo hap të këtij udhëzuesi. Duke vepruar kështu do të konfiguroni një mur zjarri në server me