Proxmox Ansible Playbook

Hallo liebe Community,

ich habe folgendes Problem:

Ich möchte in Zukunft meine Proxmoxserver via Ansible steuern.

VMs funktionieren ganz gut (Erstellen, Ändern, löschen usw.)

Bei lxc sieht es dagegen anders aus. Bei Playbooks die einen neuen LXT erstellen kommt immer ein 400 Bad Request vom Server.
Wenn ich einen lxc ändere oder lösche geht alles sauber durch. (Also schließe ich Inventory und ansible cfg aus, da ja VMs und co gehen.)

Hier wo es Funktioniert: (Update LXC)

2024-03-15 20:10:25,758 p=10717 u=root n=ansible | PLAY [Update LXC container in Proxmox] ******************************************************************************************************************************************************
2024-03-15 20:10:25,764 p=10717 u=root n=ansible | TASK [Gathering Facts] **************************************************************************************************************************************************************************
2024-03-15 20:10:28,942 p=10717 u=root n=ansible | ok: [88.99.68.228]
2024-03-15 20:10:28,964 p=10717 u=root n=ansible | TASK [Container Updaten] ************************************************************************************************************************************************************************
2024-03-15 20:10:30,534 p=10717 u=root n=ansible | changed: [88.99.68.228]
2024-03-15 20:10:30,565 p=10717 u=root n=ansible | PLAY RECAP **************************************************************************************************************************************************************************************
2024-03-15 20:10:30,565 p=10717 u=root n=ansible | 88.99.68.228               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

und hier wenn ich ein lxc erstelle:

2024-03-15 20:11:56,614 p=10761 u=root n=ansible | PLAY [Create new LXC container in Proxmox] ******************************************************************************************************************************************************
2024-03-15 20:11:56,635 p=10761 u=root n=ansible | TASK [Gathering Facts] **************************************************************************************************************************************************************************
2024-03-15 20:11:59,898 p=10761 u=root n=ansible | ok: [88.99.68.228]
2024-03-15 20:11:59,921 p=10761 u=root n=ansible | TASK [Create LXC Container] *********************************************************************************************************************************************************************
2024-03-15 20:12:01,130 p=10761 u=root n=ansible | fatal: [88.99.68.228]: FAILED! => {"changed": false, "msg": "Creation of lxc VM 123 failed with exception: 400 Bad Request: Parameter verification failed.", "vmid": 123}
2024-03-15 20:12:01,131 p=10761 u=root n=ansible | PLAY RECAP **************************************************************************************************************************************************************************************
2024-03-15 20:12:01,132 p=10761 u=root n=ansible | 88.99.68.228               : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

(die codeblock formatierung wurde nicht umsonst erfunden! der hausmeister)

jemand eine idee vlt mit abhilfe?

Ohne dein Playbook näher zu kennen ist das eher ein Stochern im Dunkeln.

Hier die 2 Playbooks:

LXC erstellen (schlägt fehl)

---
- name: Create new LXC container in Proxmox
  hosts: Proxmox
  tasks:
    - name: 'Create LXC Container'
      community.general.proxmox:
          vmid: 123 
          api_user: xxxxx@pam 
          api_password: xxxxxx 
          api_host: 88.99.68.228 
          password: 'xxxxx'
          hostname: 'ansible-lxc' 
          node: 'pve2' # Name of Proxmox host
          cores: '1'
          cpus: '1'
          cpuunits: '1000'
          ostemplate: 'local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz' 
          storage: 'local' 
          disk: '8'
          memory: '512'
          nameserver: '8.8.8.8'
          netif: '{"net0":"name=eth0,ip=10.0.1.100/24,gw=192.168.100.1,bridge=vmbr2"}'
          state: 'present'
          force: true

und hier das Playbook wo das „bearbeiten“ klappt

---
- name: Create new LXC container in Proxmox
  hosts: Proxmox
  tasks:
    - name: 'Container Updaten'
      proxmox:
        vmid: 101
        node: pve2
        api_user: xxx@pam
        api_password: xxxxxxx
        api_host: 88.99.68.228
        hostname: 'ansible-lxc-up-test'
        netif: '{"net0":"name=eth0,gw=10.0.1.1,ip=10.0.1.10/24,bridge=vmbr2"}'
        update: true

Er meckert beim Erstellen eines LXC wegen der vmid herum. Aber beim Bearbeiten nicht.

Nur ne Vermutung, muss die nicht ‚local-lvm‘, da liegen doch die Container drauf.

Wenn der an der vmid mecker beim Neuanlegen, sind da evtl. noch Konfigreste einer frühere Installation mit der selben vmid übrig ?
Proxmox vergibt die ja immer wieder neu, wenn man eine VM löscht.

ich habe auch schon eine noch nie ergebene vmid ergeben (456) da meckert er auch mit der gleichen Fehlermeldung

Dieser Tipp hat mich auf die Idee gebracht, mal auf den Storage zu schauen.

Laut Ansible ist standardmäßig „local“ hinterlegt. In meinem PVE ist es aber nicht vorgesehen, es auf Local abzulegen, sondern auf ZFS Storage.

Ich habe den Speicherort geändert (local-zfs) und schon klappt es.

typisch Layer 8 Problem

2 Likes