Files
bunkerwebpoc/roles/proxmox_vm/tasks/vm.yml
T
claude BotandClaude Opus 5.5 099584c95c PoC BunkerWeb 1.6.17 : docker-compose sur Proxmox, déployé par Ansible
Stack BunkerWeb (scheduler, UI, MariaDB, Redis), sites de test (nginx,
Juice Shop, go-httpbin), filtrage DOCKER-USER, script de tests, README
et schéma d'architecture.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 11:11:07 +01:00

57 lines
1.9 KiB
YAML

---
- name: "{{ vm_name }} : lecture des paramètres"
ansible.builtin.set_fact:
vm: "{{ hostvars[vm_name] }}"
- name: "{{ vm_name }} : la VM existe-t-elle ?"
ansible.builtin.command: qm status {{ vm.vm_id }}
register: vm_status
changed_when: false
failed_when: false
- name: "{{ vm_name }} : création"
when: vm_status.rc != 0
block:
- name: "{{ vm_name }} : l'IP {{ vm.ansible_host }} doit être libre"
ansible.builtin.command: ping -c 2 -W 1 {{ vm.ansible_host }}
register: ip_ping
changed_when: false
failed_when: ip_ping.rc == 0
- name: "{{ vm_name }} : clonage du modèle"
ansible.builtin.command: >-
qm clone {{ pve_template_vmid }} {{ vm.vm_id }}
--name {{ vm_name }} --full 1 --storage {{ pve_storage }}
changed_when: true
- name: "{{ vm_name }} : ressources et cloud-init"
ansible.builtin.command: >-
qm set {{ vm.vm_id }}
--cores {{ vm.vm_cores }} --memory {{ vm.vm_memory }}
--onboot 1 --tags bwpoc
--ciuser {{ poc_vm_user }}
--sshkeys /root/bwpoc_authorized_keys
--ipconfig0 ip={{ vm.ansible_host }}/{{ poc_net_prefix }},gw={{ poc_net_gateway }}
--nameserver "{{ poc_net_dns | join(' ') }}"
--searchdomain {{ poc_net_searchdomain }}
--ciupgrade 0
changed_when: true
- name: "{{ vm_name }} : agrandissement du disque à {{ vm.vm_disk_gb }} Go"
ansible.builtin.command: qm resize {{ vm.vm_id }} scsi0 {{ vm.vm_disk_gb }}G
changed_when: true
- name: "{{ vm_name }} : démarrage"
ansible.builtin.command: qm start {{ vm.vm_id }}
register: vm_start
changed_when: vm_start.rc == 0
failed_when: vm_start.rc != 0 and 'already running' not in vm_start.stderr
- name: "{{ vm_name }} : attente du SSH"
ansible.builtin.wait_for:
host: "{{ vm.ansible_host }}"
port: 22
timeout: 300
delegate_to: localhost
become: false