-

Ansible a Terraform

Infraštruktúra ako kód (IaC)

servery, siete a ďalšie zdroje definujeme pomocou konfiguračných súborov:

Výhody:

  • automatizácia
  • opakovateľnosť
  • verzovanie (napr. cez Git)
  • menšie riziko chýb

Ansible a Terraform

Nástroje na pridelenie a správu zdrojov pomocou konfiguračných súborov.

Ansible

open-source nástroj na automatizáciu konfigurácie a správy serverov. Umožňuje definovať požadovaný stav systému a zabezpečiť jeho dosiahnutie.

  • nepouužíva dohľadové procesy na pozadí (agenty).
  • jednoduchý zápis v YAML

Architektúra Ansible

  • Riadiaci uzol – počítač, z ktorého spúšťame Ansible
  • Spravované uzly – cieľové servery

Kľúčové komponenty

  • Inventár – zoznam serverov
  • Playbook – súbor s definíciou úloh
  • Moduly – vykonávajú konkrétne operácie (napr. inštalácia balíka)

Príklad Ansible playbooku

- name: Inštalácia a spustenie nginx
  hosts: web
  become: true

  tasks:
    - name: Inštaluj nginx
      apt:
        name: nginx
        state: present

    - name: Spusti službu nginx
      service:
        name: nginx
        state: started

Vysvetlenie:

  • hosts: na ktorých serveroch sa vykoná
  • tasks: zoznam úloh
  • apt: modul na správu balíkov
  • service: modul na správu služieb

Terraform

Čo je Terraform

nástroj od spoločnosti HashiCorp na správu infraštruktúry pomocou deklaratívneho jazyka (HCL).

Používa sa hlavne na:

  • vytváranie cloudovej infraštruktúry (AWS, Azure, GCP)
  • správu zdrojov (VM, siete, databázy)

Základné princípy

Deklaratívny prístup

Definujeme čo chceme, nie ako to dosiahnuť.

Stav (state)

Terraform si ukladá aktuálny stav infraštruktúry do súboru:

terraform.tfstate

Pracovný postup

  1. init – inicializácia projektu
  2. plan – náhľad zmien
  3. apply – vykonanie zmien
  4. destroy – odstránenie infraštruktúry

Príklad Terraform konfigurácie

provider "aws" {
  region = "eu-central-1"
}

resource "aws_instance" "web" {
  ami           = "ami-123456"
  instance_type = "t2.micro"

  tags = {
    Name = "web-server"
  }
}

Vysvetlenie:

  • provider – cloudový poskytovateľ
  • resource – definícia zdroja (virtuálny server)
  • ami – obraz systému
  • instance_type – typ inštancie

Porovnanie Ansible vs Terraform

Vlastnosť Ansible Terraform
Použitie konfigurácia serverov pridelenie zdrojov
Prístup imperatívny deklaratívny
Jazyk YAML HCL
Agent nie nie

Zhrnutie

  • Ansible sa používa na konfiguráciu a správu serverov
  • Terraform sa používa na vytváranie infraštruktúry
  • Spolu tvoria silnú kombináciu v DevOps:

    • Terraform vytvorí infraštruktúru
    • Ansible ju nakonfiguruje
Reload?