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>
57 lines
1.9 KiB
YAML
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
|