From a7da70d1a0df5ad310adc18455b3a18d42437ab6 Mon Sep 17 00:00:00 2001 From: Sven Ketelsen Date: Fri, 11 Nov 2022 13:53:22 +0100 Subject: [PATCH] DEV-526 added pmci-callback playbook for testing purposes - new pmci playbook api --- pmci-callback.yml | 94 ++++++++++++++++++++++++++ roles/kubernetes/awx/defaults/main.yml | 2 + 2 files changed, 96 insertions(+) create mode 100644 pmci-callback.yml diff --git a/pmci-callback.yml b/pmci-callback.yml new file mode 100644 index 0000000..6f32232 --- /dev/null +++ b/pmci-callback.yml @@ -0,0 +1,94 @@ +--- + +# Parameters: +# playbook inventory +# stage := the name of the stage (e.g. dev, int, qa, prod) +# tenant := object with tenant related data +# key := +# name := +# cluster := object with cluster specific data (optional) +# ... +# data := object with action specific data (optional) +# ... +# smardigo message callback +# scope_id := (scope id of the management process) +# process_instance_id := (process instance id of the management process) +# smardigo_management_action := (smardigo management action anme of the management process) + +############################################################# +# Creating inventory dynamically for given parameters +############################################################# + +- hosts: localhost + gather_facts: false + connection: local + + pre_tasks: + - name: "Print given variables " + debug: + msg: "{{ cluster }}" + become: false + when: + - cluster is defined + - name: "Print given variables " + debug: + msg: "{{ data }}" + become: false + when: + - data is defined + + - name: "Check if ansible version is at least 2.10.x" + assert: + that: + - ansible_version.major >= 2 + - ansible_version.minor >= 10 + msg: "The ansible version has to be at least ({{ ansible_version.full }})" +# add virtual server to load stage specific variables as context + - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts" + add_host: + name: "{{ stage }}-virtual-host-to-read-groups-vars" + groups: + - "stage_{{ stage }}" + changed_when: False + + tasks: + - name: Add hosts + add_host: + name: "{{ stage }}-{{ tenant.key }}-{{ cluster.key }}-{{ '%02d' | format(item|int) }}" + groups: "{{ ['stage_' + stage ] + [cluster.service] + cluster.features }}" + with_sequence: start=1 end={{ cluster.size | default(1) }} + changed_when: False + when: + - cluster is defined + +############################################################# +# +############################################################# + +- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars" + serial: "{{ serial_number | default(1) }}" + gather_facts: false + connection: local + + pre_tasks: + - name: "Import autodiscover pre-tasks" + import_tasks: tasks/autodiscover_pre_tasks.yml + become: false + tags: + - always + +############################################################# +# Sending smardigo management message to process +############################################################# + +- hosts: "{{ stage }}-virtual-host-to-read-groups-vars" + serial: "{{ serial_number | default(1) }}" + gather_facts: false + connection: local + run_once: true + vars: + connect_jwt_username: "{{ management_admin_username }}" + + tasks: + - name: "Sending smardigo management message to <{{ smardigo_management_url }}>" + include_tasks: tasks/smardigo_management_message.yml diff --git a/roles/kubernetes/awx/defaults/main.yml b/roles/kubernetes/awx/defaults/main.yml index 1b64754..c366d7f 100644 --- a/roles/kubernetes/awx/defaults/main.yml +++ b/roles/kubernetes/awx/defaults/main.yml @@ -16,6 +16,7 @@ awx_job_templates: - name: "create-server" - name: "create-service" - name: "import-database" + - name: "pmci-callback" - name: "remove-database" - name: "remove-realm" - name: "remove-server" @@ -24,3 +25,4 @@ awx_job_templates: - name: "restore-remote-database-backup" - name: "update-monitoring" - name: "update-service-state" + - name: "update-service-state"