Ce veți învăța
- Scrieți playbook-uri Ansible pentru configurarea automată a serverelor Linux, de la instalarea pachetelor până la gestionarea serviciilor systemd.
- Organizați infrastructura în inventare statice și dinamice, cu grupuri, variabile și fișiere host_vars și group_vars.
- Construiți roluri Ansible reutilizabile, structurate cu ansible-galaxy init și publicate prin Ansible Galaxy sau un repository Git.
- Criptați parole și chei API cu Ansible Vault și le integrați în playbook-uri fără să le expuneți în text simplu.
- Configurați ansible-pull pentru servere care își aplică singure configurația la un interval stabilit printr-un systemd timer.
- Scrieți fișiere Terraform în HCL pentru a proviziona mașini virtuale pe Proxmox VE și resurse la un furnizor cloud precum Hetzner sau AWS.
- Gestionați starea Terraform local și remote, cu backend S3 și blocare prin DynamoDB, și rezolvați conflicte de stare.
- Construiți module Terraform proprii și le combinați cu providers pentru a livra un cluster complet, provizionat și configurat automat printr-un pipeline CI.
Despre curs
Cursul „Automatizarea infrastructurii cu Ansible și Terraform” vă arată cum treceți de la configurarea manuală a serverelor la infrastructură descrisă în cod, versionată în Git și aplicată repetabil. Ansible este scris în Python și se conectează prin SSH, fără agent instalat pe gazdele administrate. Terraform, dezvoltat de HashiCorp, folosește limbajul HCL pentru a descrie resurse și le provizionează prin providers specifice fiecărui furnizor.
Veți parcurge Ansible de la comenzi ad-hoc până la roluri complete publicate prin ansible-galaxy. Lucrați cu inventare statice în format INI și YAML, apoi cu inventare dinamice generate din Proxmox VE prin pluginul community.general.proxmox. Fiecare playbook este verificat cu ansible-playbook --check --diff înainte de aplicare, pentru a vedea exact ce se schimbă pe gazdă.
Un capitol separat este dedicat Ansible Vault, unde criptați parole și chei API cu ansible-vault encrypt și le decriptați automat la rulare printr-un fișier de parolă sau prin variabile de mediu în pipeline. Discutăm și modelul ansible-pull, în care fiecare server își aplică singur configurația la un interval fixat printr-un systemd timer, util pentru flote mari fără acces SSH central.
La Terraform, plecați de la sintaxa HCL și de la comenzile terraform init, plan și apply, apoi ajungeți la gestionarea stării (state), cu backend local sau remote de tip S3 și blocare prin DynamoDB pentru echipele care lucrează pe același proiect. Provizionați mașini virtuale pe Proxmox VE pornind de la șabloane cloud-init și, într-un capitol dedicat, resurse la un furnizor cloud precum Hetzner sau AWS, folosind module Terraform proprii pentru a evita duplicarea codului.
Cursul arată și cum se leagă cele două unelte: output-ul Terraform generează automat inventarul pentru Ansible, iar fluxul recomandat păstrează provizionarea separată de configurare. Un capitol despre integrare continuă vă arată cum validați codul cu terraform fmt, terraform validate și ansible-lint într-un pipeline GitLab CI sau GitHub Actions, cu o aprobare manuală înainte de aplicarea în producție.
Laboratorul final vă pune să provizionați și să configurați un cluster cu trei noduri, un load balancer și o bază de date, integral pe Proxmox, de la terraform apply până la serviciile pornite prin Ansible. Cursul se adresează administratorilor de sistem și inginerilor care administrează deja servere Linux și vor să elimine pașii manuali repetitivi din munca lor.
Pentru cine este cursul
Administratori de sistem, ingineri DevOps și freelanceri care administrează infrastructură pentru mai mulți clienți și vor să înlocuiască pașii manuali repetitivi cu playbook-uri și fișiere Terraform versionate în Git.
Pentru cine nu este
Persoane care nu au experiență cu linia de comandă Linux, cu SSH sau cu noțiuni de rețea de bază (adrese IP, porturi, DNS); acest curs nu reia aceste fundamente.
Ce trebuie să știți înainte
Cunoștințe solide de Linux (linia de comandă, systemd, gestionarea pachetelor cu apt sau yum), acces SSH la cel puțin un server sau la un hypervisor Proxmox VE pentru laboratoare, noțiuni de bază de Git și de rețea.
Ce veți putea face după curs
- Automatizați instalarea și configurarea unui server nou în câteva minute, fără pași manuali repetitivi.
- Mențineți infrastructura documentată în cod, versionată în Git și verificabilă prin diff înainte de aplicare.
- Provizionați și distrugeți medii de testare identice cu producția, la cerere, cu terraform apply și terraform destroy.
- Integrați Ansible și Terraform într-un pipeline CI care validează și aplică schimbările automat.
- Reduceți erorile de configurare manuală prin idempotență și prin revizuirea planurilor Terraform înainte de aplicare.
- Gestionați secrete, precum parole și chei API, criptate cu Ansible Vault, fără să le stocați necriptate în repository.
Cuprins
1. Introducere în infrastructura ca și cod
- De la configurare manuală la infrastructură ca și cod: motivație și limitări gratuit
- Ansible, Terraform, Puppet și Chef: cui i se potrivește fiecare unealtă3 min
- Pregătirea mediului de lucru: WSL2, Python 3, pip și instalarea Ansible3 min
- Instalarea Terraform și verificarea versiunii cu terraform version3 min
- Structura unui proiect de infrastructură: separarea provizionării de configurare3 min
- Configurarea unui laborator local cu Proxmox VE pentru exercițiile din curs3 min
2. Fundamentele Ansible: conexiune și module
- Conexiunea SSH fără parolă cu chei publice și ssh-copy-id3 min
- Comenzi ad-hoc cu ansible și modulul ping pentru verificarea conectivității3 min
- Modulele command, shell, copy și file explicate pe exemple3 min
- Modulul apt și modulul yum pentru instalarea pachetelor pe Debian și pe RHEL3 min
- Modulul service și gestionarea unităților systemd3 min
- Documentația modulelor cu ansible-doc și găsirea parametrilor corecți3 min
3. Inventare Ansible statice și dinamice
- Scrierea unui inventar INI cu grupuri și subgrupuri de servere3 min
- Inventarul în format YAML și avantajele față de formatul INI3 min
- Variabile de grup în group_vars și variabile per gazdă în host_vars3 min
- Inventare dinamice cu pluginul community.general.proxmox3 min
- Testarea inventarului cu ansible-inventory --list și --graph3 min
- Organizarea mediilor de producție și de staging cu inventare separate3 min
4. Playbook-uri Ansible: sintaxă și logică
- Structura unui playbook YAML: hosts, become și tasks3 min
- Variabile și fapte (facts) colectate automat prin modulul setup3 min
- Condiționale cu when și bucle cu loop3 min
- Handlers și notify pentru repornirea serviciilor doar la nevoie3 min
- Șabloane Jinja2 cu modulul template pentru fișiere de configurare3 min
- Rularea selectivă a task-urilor cu --tags și --skip-tags3 min
5. Idempotență și rularea sigură a playbook-urilor
- Ce înseamnă idempotență și de ce modulul shell o poate strica3 min
- Verificarea modificărilor înainte de aplicare cu ansible-playbook --check --diff3 min
- Parametrii changed_when și failed_when pentru control fin al stării3 min
- Limitarea execuției la un subset de gazde cu --limit3 min
- Rularea în paralel și controlul cu forks și serial3 min
- Depanarea unui playbook cu -vvv și cu modulul debug3 min
6. Roluri Ansible și organizarea codului
- Generarea structurii unui rol cu ansible-galaxy init3 min
- Separarea tasks, handlers, templates, files, defaults și vars într-un rol3 min
- Dependențe între roluri definite în meta/main.yml3 min
- Instalarea rolurilor cu ansible-galaxy install din Galaxy sau dintr-un repository Git3 min
- Rescrierea unui playbook monolit ca set de roluri reutilizabile3 min
- Colecții Ansible (collections) și structura fișierului requirements.yml3 min
7. Ansible Vault: secrete și date sensibile
- Criptarea unui fișier de variabile cu ansible-vault create și ansible-vault encrypt3 min
- Editarea fișierelor criptate cu ansible-vault edit fără a le expune pe disc3 min
- Rularea playbook-urilor cu --ask-vault-pass și cu --vault-password-file3 min
- Vault ID-uri multiple pentru separarea secretelor pe medii (dev, staging, producție)3 min
- Integrarea Ansible Vault cu variabile de mediu într-un pipeline CI3 min
- Ce nu criptați niciodată direct într-un repository Git3 min
8. ansible-pull și configurarea descentralizată
- Diferența dintre modelul push cu ansible-playbook și modelul pull3 min
- Configurarea unui repository Git cu playbook-ul local.yml pentru ansible-pull3 min
- Programarea ansible-pull printr-un cron job sau un systemd timer3 min
- Autentificarea la un repository privat cu chei SSH dedicate3 min
- Jurnalizarea execuțiilor ansible-pull pentru audit3 min
- Scenarii potrivite: flote mari de servere fără acces SSH central3 min
9. Introducere în Terraform și HCL
- Instalarea Terraform și structura unui fișier .tf3 min
- Sintaxa HCL: blocuri, argumente și expresii3 min
- Providers: declararea și versionarea cu required_providers3 min
- Blocul resource și legătura lui cu starea Terraform3 min
- Comenzile de bază: terraform init, plan, apply și destroy3 min
- Variabile de intrare cu variable și fișiere terraform.tfvars3 min
10. Starea Terraform și lucrul în echipă
- Ce conține fișierul terraform.tfstate și de ce nu se editează manual3 min
- Backend local versus backend remote de tip S3 sau Terraform Cloud3 min
- Blocarea stării (state locking) cu DynamoDB pentru a preveni aplicări simultane3 min
- Importul resurselor existente cu terraform import3 min
- Comenzile terraform state list, terraform state show și terraform state rm3 min
- Recuperarea după o aplicare eșuată și rezolvarea conflictelor de stare3 min
11. Provizionarea infrastructurii pe Proxmox cu Terraform
- Configurarea providerului bpg/proxmox și autentificarea prin token API3 min
- Definirea unei mașini virtuale pornind de la un șablon cloud-init3 min
- Alocarea resurselor: CPU, memorie, discuri și interfețe de rețea3 min
- Injectarea cheilor SSH și a configurației inițiale prin cloud-init3 min
- Provizionarea mai multor mașini identice cu for_each3 min
- Verificarea planului cu terraform plan înainte de aplicarea pe cluster3 min
12. Module Terraform și providers cloud
- Structura unui modul Terraform: input, output și fișierul main.tf3 min
- Reutilizarea unui modul propriu în mai multe medii (dev, staging, producție)4 min
- Providerul pentru Hetzner Cloud sau AWS și autentificarea prin variabile de mediu3 min
- Combinarea resurselor Proxmox on-premise cu resurse cloud în același proiect3 min
- Module publice din Terraform Registry și verificarea sursei înainte de utilizare3 min
- Workspaces Terraform pentru gestionarea mai multor medii din același cod3 min
13. Integrarea Ansible cu Terraform
- Generarea inventarului Ansible din rezultatul comenzii terraform output3 min
- Provizionerul local-exec din Terraform și limitele sale3 min
- Fluxul recomandat: Terraform creează infrastructura, Ansible o configurează, separat3 min
- Sincronizarea variabilelor între fișierele .tfvars și group_vars din Ansible3 min
- Scriptul de orchestrare care leagă terraform apply de ansible-playbook3 min
- Testarea end-to-end a fluxului pe un mediu de staging3 min
14. CI pentru infrastructură
- Structura unui pipeline GitLab CI sau GitHub Actions pentru validarea codului Terraform3 min
- Verificări automate cu terraform fmt -check și terraform validate3 min
- Scanarea configurațiilor cu tfsec sau checkov pentru probleme de securitate2 min
- Verificarea playbook-urilor Ansible cu ansible-lint3 min
- Aprobare manuală (manual gate) înainte de terraform apply în producție3 min
- Notificări automate la eșecul pipeline-ului și rollback controlat3 min
15. Greșeli frecvente și depanare
- Playbook-uri care nu sunt idempotente și semnul lor: changed la fiecare rulare3 min
- Stare Terraform coruptă sau pierdută și recuperarea dintr-un backup3 min
- Conflicte de versiuni între providers și blocarea lor cu required_version3 min
- Secrete scăpate accidental în istoricul Git și procedura de rotire3 min
- Diferențe de comportament între module pe Debian și pe RHEL3 min
- Erori comune de permisiuni SSH și de become (sudo) în Ansible3 min
16. Laborator final: provizionarea și configurarea unui cluster complet
- Definirea arhitecturii: trei noduri, un load balancer și o bază de date, toate pe Proxmox3 min
- Scrierea modulelor Terraform pentru fiecare tip de nod și pentru rețeaua internă3 min
- Generarea inventarului Ansible din output-ul Terraform la finalul provizionării3 min
- Scrierea rolurilor Ansible pentru load balancer, noduri de aplicație și baza de date3 min
- Rularea completă a fluxului: terraform apply urmat de ansible-playbook și verificarea serviciilor3 min
- Distrugerea controlată a clusterului cu terraform destroy și curățarea resurselor3 min
Dorel Tănase, fondatorul agenției GOAI din Alba Iulia. În mediul online din 1997, în optimizare SEO din 2007. Cursul pornește de la situații întâlnite în lucrul cu clienți din România și este actualizat pe măsură ce uneltele se schimbă. Experiența autorului.
24 august 2026
Întrebări frecvente despre curs
Ce diferență este între Ansible și Terraform și de ce le folosim împreună?
Terraform provizionează infrastructura (mașini virtuale, rețele, discuri), iar Ansible configurează sistemul de operare și aplicațiile de pe acele mașini. În curs folosiți Terraform pentru a crea serverele pe Proxmox sau într-un cloud, apoi Ansible pentru a le instala pachetele și serviciile necesare.
Am nevoie de un cont la un furnizor cloud pentru laboratoare?
Laboratoarele principale folosesc Proxmox VE, pe care îl puteți instala local sau pe un VPS. Pentru capitolele despre providers cloud vă recomandăm un cont cu credit de testare la un furnizor precum Hetzner sau AWS, dar exercițiile pot fi adaptate și doar la Proxmox.
Certificatul de absolvire are recunoaștere oficială?
Certificatul confirmă parcurgerea cursului și promovarea testului final grilă cu prag de 70%, cu un cod public de verificare. Nu este o diplomă a Ministerului Educației și nu înlocuiește o certificare ANC sau una eliberată de HashiCorp ori Red Hat.
Pot folosi Ansible și Terraform pe Windows?
Terraform rulează nativ pe Windows. Ansible are nevoie de un mediu Linux, motiv pentru care în curs recomandăm WSL2 pe Windows sau o mașină virtuală Linux pentru rularea playbook-urilor.
Cursuri din aceeași categorie