105 lines
3.2 KiB
YAML
105 lines
3.2 KiB
YAML
|
---
|
||
|
- hosts: status_planned
|
||
|
gather_facts: no
|
||
|
vars:
|
||
|
token: "{{ nb_token }}"
|
||
|
vm_name: "{{ inventory_hostname }}"
|
||
|
tag_merged: []
|
||
|
debug_merged: []
|
||
|
vars_files:
|
||
|
- ../variables/deploy-variables.yml
|
||
|
|
||
|
pre_tasks:
|
||
|
- name: Check lock
|
||
|
wait_for:
|
||
|
path: "{{ lockfile }}"
|
||
|
state: absent
|
||
|
timeout: 600
|
||
|
msg: Lock did not disappear in time
|
||
|
delegate_to: localhost
|
||
|
|
||
|
- name: Create lock
|
||
|
file:
|
||
|
path: "{{ lockfile }}"
|
||
|
state: touch
|
||
|
delegate_to: localhost
|
||
|
|
||
|
tasks:
|
||
|
- name: Pipeline
|
||
|
block:
|
||
|
- name: Gather details
|
||
|
block:
|
||
|
- import_tasks: "../tasks/netbox_query_vm.yml"
|
||
|
- import_tasks: "../tasks/netbox_query_cluster.yml"
|
||
|
no_log: true
|
||
|
|
||
|
- name: Assign variables
|
||
|
block:
|
||
|
- import_tasks: "../tasks/netbox_evaluate_cluster.yml"
|
||
|
- import_tasks: "../tasks/netbox_evaluate_vm.yml"
|
||
|
|
||
|
- name: Verify compliance
|
||
|
block:
|
||
|
- name: Check status
|
||
|
fail:
|
||
|
msg: The object is not Planned.
|
||
|
when: status != 'planned'
|
||
|
|
||
|
- name: Check tag
|
||
|
fail:
|
||
|
msg: The object is marked as already being in deployment.
|
||
|
when: '"active-deployment" in tags'
|
||
|
|
||
|
- name: Check platform
|
||
|
fail:
|
||
|
msg: The object does not contain a valid platform attribute.
|
||
|
when: os != 'openSUSE-Leap-x86_64'
|
||
|
|
||
|
- name: Write tag and journal
|
||
|
import_tasks: "../tasks/netbox_tags_pre.yml"
|
||
|
|
||
|
- name: Gather site configuration
|
||
|
block:
|
||
|
- import_tasks: "../tasks/netbox_query_site.yml"
|
||
|
- import_tasks: "../tasks/netbox_evaluate_site.yml"
|
||
|
no_log: true
|
||
|
|
||
|
- name: Gather prefix
|
||
|
block:
|
||
|
- import_tasks: "../tasks/netbox_query_prefix.yml"
|
||
|
- import_tasks: "../tasks/netbox_evaluate_prefix.yml"
|
||
|
no_log: true
|
||
|
|
||
|
- name: Gather IP address
|
||
|
block:
|
||
|
- import_tasks: "../tasks/netbox_query_ip.yml"
|
||
|
- import_tasks: "../tasks/netbox_evaluate_ip.yml"
|
||
|
no_log: true
|
||
|
|
||
|
- name: Provision virtual machine
|
||
|
import_tasks: "../tasks/configure_libvirt.yml"
|
||
|
|
||
|
- name: Configure DHCP
|
||
|
import_tasks: "../tasks/init_dhcp.yml"
|
||
|
|
||
|
|
||
|
# - name: Prepare unattended installation (TO-DO if needed - not needed if script inside autoinst.xml fetches values itself)
|
||
|
# block:
|
||
|
# - import_tasks: "../tasks/prepare_platform_{{ os }}.yml"
|
||
|
|
||
|
|
||
|
always:
|
||
|
- name: Restore original tags
|
||
|
import_tasks: "../tasks/netbox_tags_post.yml"
|
||
|
|
||
|
- name: Remove lock
|
||
|
file:
|
||
|
path: "{{ lockfile }}"
|
||
|
state: absent
|
||
|
delegate_to: localhost
|
||
|
|
||
|
- name: Debug
|
||
|
ansible.builtin.debug:
|
||
|
msg: "{{ status if status is defined}} - {{ tags if tags is defined }} - {{ host if host is defined }} - {{ host_status if host_status is defined }} - {{ os if os is defined }} - {{ vcpus if vcpus is defined }} - {{ memory if memory is defined }} - {{ disk if disk is defined }}"
|
||
|
|