Kreiranje Proxmox Ubuntu kontejnera preko ansible playbooka


Ansible playbook za kreiranje Ubuntu kontejnera u Proxmoxu

-host targetiramo mašinu u inventoriju
community.general.proxmox: ansible modul za upravljanje instancama u Proxmox VE klasteru
vmid: 107 je id koji će imati novo kreirani konteiner
node: je ime Proxmox noda
api_user: je username Proxmox noda
api_password: je šifra Proxmox noda
api_host: je host Proxmox noda
password: je šifra koju će imati novi kontejner koji kreiramo
hostname: je hostname koji će imati novi kontejner koji kreiramo
pubkey: je publickey za ssh spajanje na novi kontejner
ostemplate: je kontejner template za kreiranje novog kontejnera
cores: je boj jezgri koje će novi kontejner iskorištavati
memory: je količina radne memorije koje će novi kontejner iskorištavati
netif: je konfig mrežnih postavki za novi kontejner
swap: je količina memorije koje će swapati novi kontejner
unprivileged:
storage: je koji će storage koristiti novo nastali kontejner
state: Potvrđuje postojanje kontejnera koji odgovara nazivu i svim navedenim konfiguracijskim parametrima. Ako nijedan kontejner ne odgovara nazivu, kontejner će se stvoriti. Ako kontejner odgovara nazivu, ali navedena konfiguracija ne odgovara, kontejner će se ažurirati, ako je moguće. Ako se ne može ažurirati, bit će uklonjen i ponovno izrađen sa traženom konfiguracijom.
- name: start created container u ovom tasku je state: started što znaći da se novo kreirani kontejner pokrene.

Ansible playbook:

- hosts: prodmachines
  tasks:
    - name: Create new container
      community.general.proxmox:
        vmid: 107
        node: dabars
        api_user: root@pam
        api_password: 1q2w3e4r
        api_host: dabars.truss
        password: 1q2w3e4r
        hostname: meri-latin
        pubkey: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBmikPPVjtasgdI2Jf6Aym+P9z7K+ty6rC9hqbn3lKks noob@noob'
        ostemplate: 'local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst'
        cores: 1
        memory: 1024
        netif: '{"net0":"name=eth0,ip=dhcp,ip6=dhcp,type=veth,bridge=vmbr0,firewall=1"}'
        swap: 512
        unprivileged: 1
        storage: local-lvm
        state: present

    - name: start created container
      community.general.proxmox:
        vmid: 107
        node: dabars
        api_user: root@pam
        api_password: 1q2w3e4r
        api_host: dabars.truss
        state: started

Playbook za brisanje konejnera:
U prvom tasku smo stopirali kontejner state: stoped
U drugom smo ga izbrisali state: absent
Nakon pokretanja ovog playbooka kontejner sa id brojem 107 više neće postojati

- hosts: prodmachines
  tasks:
    - name: stop created container
      community.general.proxmox:
        vmid: 107
        node: dabars
        api_user: root@pam
        api_password: 1q2w3e4r
        api_host: dabars.truss
        state: stopped

    - name: delete lxc container
      community.general.proxmox:
        vmid: 107
        node: dabars
        api_user: root@pam
        api_password: 1q2w3e4r
        api_host: dabars.truss
        state: absent