Ansible Tower / AWX / Automation controller Security
Osnovne informacije
Ansible Tower ili njegova open-source verzija AWX poznati su kao Ansible-ov korisnički interfejs, kontrolna tabla i REST API. Sa kontrolom pristupa zasnovanom na ulogama, planiranjem poslova i grafičkim upravljanjem inventarom, možete upravljati svojom Ansible infrastrukturom putem modernog korisničkog interfejsa. REST API i interfejs komandne linije Tower-a olakšavaju njegovo integrisanje u trenutne alate i radne tokove.
Kontroler automatizacije je novija verzija Ansible Tower-a sa više mogućnosti.
Razlike
Prema ovome, glavne razlike između Ansible Tower-a i AWX-a su podrška koju dobijaju i dodatne funkcije koje Ansible Tower ima, kao što su kontrola pristupa zasnovana na ulogama, podrška za prilagođene API-je i korisnički definisani radni tokovi.
Tehnološki sklop
Veb interfejs: Ovo je grafički interfejs gde korisnici mogu upravljati inventarima, akreditacijama, šablonima i poslovima. Dizajniran je da bude intuitivan i pruža vizualizacije koje pomažu u razumevanju stanja i rezultata vaših automatizacionih poslova.
REST API: Sve što možete uraditi u veb interfejsu, možete uraditi i putem REST API-ja. To znači da možete integrisati AWX/Tower sa drugim sistemima ili skriptovima koje obično izvršavate u interfejsu.
Baza podataka: AWX/Tower koristi bazu podataka (obično PostgreSQL) za čuvanje svoje konfiguracije, rezultata poslova i ostalih neophodnih operativnih podataka.
RabbitMQ: Ovo je sistem poruka koji koristi AWX/Tower za komunikaciju između različitih komponenti, posebno između veb servisa i izvršilaca zadataka.
Redis: Redis služi kao keš i pozadina za red zadataka.
Logički komponenti
Inventari: Inventar je kolekcija domaćina (ili čvorova) protiv kojih se mogu izvršavati poslovi (Ansible skripte). AWX/Tower vam omogućava da definišete i grupišete svoje inventare i takođe podržava dinamičke inventare koji mogu dobavljati liste domaćina iz drugih sistema poput AWS-a, Azure-a, itd.
Projekti: Projekat je u osnovi kolekcija Ansible skripti preuzetih iz sistema za kontrolu verzija (kao što je Git) kako bi se povukle najnovije skripte kada je potrebno.
Šabloni: Šabloni poslova definišu kako će određena skripta biti izvršena, navodeći inventar, akreditacije i druge parametre za posao.
Akreditacije: AWX/Tower pruža siguran način za upravljanje i čuvanje tajni, poput SSH ključeva, lozinki i API tokena. Ove akreditacije mogu biti povezane sa šablonima poslova kako bi skripte imale neophodan pristup prilikom izvršavanja.
Zadatak mašina: Ovde se dešava magija. Zadatak mašina je zasnovan na Ansible-u i odgovoran je za izvršavanje skripti. Poslovi se prosleđuju zadatnoj mašini, koja zatim izvršava Ansible skripte protiv određenih inventara koristeći navedene akreditacije.
Planeri i povratni pozivi: Ovo su napredne funkcije u AWX/Tower-u koje omogućavaju planiranje poslova da se izvrše u određeno vreme ili da se pokrenu spoljašnjim događajima.
Obaveštenja: AWX/Tower može slati obaveštenja na osnovu uspeha ili neuspeha poslova. Podržava različite načine obaveštavanja poput emailova, Slack poruka, webhooks, itd.
Ansible Skripte: Ansible skripte su alati za konfigurisanje, implementaciju i orkestraciju. One opisuju željeno stanje sistema na automatizovan, ponovljiv način. Napisane u YAML-u, skripte koriste Ansible-ov deklarativni jezik automatizacije da opišu konfiguracije, zadatke i korake koji treba da budu izvršeni.
Tok izvršavanja posla
Interakcija korisnika: Korisnik može da interaguje sa AWX/Tower-om ili putem Veb interfejsa ili putem REST API-ja. Ovi pružaju pristup svim funkcionalnostima koje nudi AWX/Tower.
Inicijacija posla:
Korisnik, putem Veb interfejsa ili API-ja, inicira posao na osnovu Šablona posla.
Šablon posla uključuje reference na Inventar, Projekat (koji sadrži skriptu) i Akreditacije.
Po inicijaciji posla, zahtev se šalje AWX/Tower backend-u da stavi posao u red za izvršavanje.
Stavljanje posla u red:
RabbitMQ upravlja porukama između veb komponente i izvršilaca zadataka. Kada se posao inicira, poruka se prosleđuje zadatnoj mašini korišćenjem RabbitMQ-a.
Redis deluje kao pozadina za red zadataka, upravljajući poslovima u redu koji čekaju izvršavanje.
Izvršavanje posla:
Zadatak mašina preuzima posao iz reda. On dobavlja neophodne informacije iz Baze podataka o povezanoj skripti posla, inventaru i akreditacijama.
Koristeći dobijenu Ansible skriptu iz povezanog Projekta, Zadatak mašina izvršava skriptu protiv određenih Inventara čvorova koristeći navedene Akreditacije.
Dok se skripta izvršava, njen izlaz izvršavanja (logovi, činjenice, itd.) se beleže i čuvaju u Bazi podataka.
Rezultati posla:
Kada se skripta završi sa izvršavanjem, rezultati (uspeh, neuspeh, logovi) se čuvaju u Bazi podataka.
Korisnici mogu zatim pregledati rezultate putem Veb interfejsa ili ih upitati putem REST API-ja.
Na osnovu ishoda posla, Obaveštenja se mogu slati da obaveste korisnike ili spoljne sisteme o statusu posla. Obaveštenja mogu biti emailovi, Slack poruke, webhooks, itd.
Integracija sa spoljnim sistemima:
Inventari mogu biti dinamički dobijeni iz spoljnih sistema, omogućavajući AWX/Tower-u da povuče domaćine iz izvora poput AWS-a, Azure-a, VMware-a i drugih.
Projekti (skripte) mogu biti preuzeti iz sistema za kontrolu verzija, obezbeđujući korišćenje ažuriranih skripti tokom izvršavanja poslova.
Planeri i povratni pozivi mogu se koristiti za integraciju sa drugim sistemima ili alatima, čineći AWX/Tower reaktivnim na spoljne okidače ili pokretanje poslova u unapred određeno vreme.
Kreiranje AWX laboratorije za testiranje
Prateći dokumentaciju moguće je koristiti docker-compose za pokretanje AWX-a:
RBAC
Podržane uloge
Najprivilegovanija uloga se zove Sistem Administrator. Svi sa ovom ulogom mogu modifikovati bilo šta.
Iz bele kutije bezbednosti, potrebna vam je uloga Sistem Auditora, koja omogućava da se pregledaju svi sistemske podaci ali ne može vršiti nikakve promene. Druga opcija bi bila da se dobije uloga Organizacije Auditora, ali bilo bi bolje dobiti prvu.
Last updated