Proxmox lancelot : compte API dédié, VLAN 200 LAB en DHCP

Clonage par l'API (community.proxmox) avec bwpoc@pve limité au pool
bwpoc ; modèle créé une fois en root avec l'agent QEMU, qui sert à lire
les IP DHCP écrites dans inventory/host_vars/<vm>/dhcp.yml.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
claude BotandClaude Opus 5.5 committed 2026-10-27 11:25:53 +01:00
1 parent 099584c95c
commit 5846487f07
15 files changed
+502 -348

No files matched your search

+21 -3
View File
@@ -1,9 +1,27 @@
---
# Crée le modèle Debian 13 cloud-init puis clone les VM du PoC.
# A sauter si vous fournissez vos propres VM (Debian 12/13 avec accès SSH).
- name: Provisionner les VM sur Proxmox
# 1) Modèle Debian 13 cloud-init : une seule fois, en SSH root sur le nœud
# (l'import d'une image disque par chemin absolu est réservé à root@pam).
- name: Modèle cloud-init et pool sur le nœud Proxmox
hosts: proxmox
gather_facts: false
roles:
- proxmox_template
# 2) Clonage des VM par l'API, avec le compte dédié bwpoc@pve (jeton API).
# A sauter si vous fournissez vos propres VM (Debian 12/13 avec accès SSH).
- name: Clonage des VM par l'API Proxmox
hosts: proxmox
connection: local
gather_facts: false
vars:
ansible_become: false
ansible_python_interpreter: "{{ ansible_playbook_python }}"
module_defaults:
group/community.proxmox.proxmox:
api_host: "{{ ansible_host }}"
api_user: "{{ pve_api_user }}"
api_token_id: "{{ pve_api_token_id }}"
api_token_secret: "{{ pve_api_token_secret }}"
validate_certs: "{{ pve_validate_certs }}"
roles:
- proxmox_vm
+8
View File
@@ -31,3 +31,11 @@
register: tpl_destroy
changed_when: "'destroyed' in tpl_destroy.stdout"
when: destroy_template | default(false) | bool
- name: Oublier les IP DHCP mémorisées
ansible.builtin.file:
path: "{{ inventory_dir }}/host_vars/{{ item }}/dhcp.yml"
state: absent
loop: "{{ groups['poc_vms'] | unique }}"
delegate_to: localhost
become: false