From 9429e5243be7cc58ed1a0951e1dacc4e0561b94b Mon Sep 17 00:00:00 2001 From: Ben Partridge Date: Wed, 25 Mar 2020 16:18:12 +1100 Subject: [PATCH] Implement playbook to do ZDU --- aws_jira_cluster_zdu.yml | 21 +++++++++++++++ roles/jira_zdu_finish/defaults/main.yml | 2 ++ roles/jira_zdu_finish/tasks/main.yml | 35 +++++++++++++++++++++++++ roles/jira_zdu_init/defaults/main.yml | 2 ++ roles/jira_zdu_init/tasks/main.yml | 32 ++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 aws_jira_cluster_zdu.yml create mode 100644 roles/jira_zdu_finish/defaults/main.yml create mode 100644 roles/jira_zdu_finish/tasks/main.yml create mode 100644 roles/jira_zdu_init/defaults/main.yml create mode 100644 roles/jira_zdu_init/tasks/main.yml diff --git a/aws_jira_cluster_zdu.yml b/aws_jira_cluster_zdu.yml new file mode 100644 index 0000000..601e521 --- /dev/null +++ b/aws_jira_cluster_zdu.yml @@ -0,0 +1,21 @@ +--- + +- hosts: localhost + connection: local + roles: + - role: jira_zdu_init + +- hosts: all + serial: 1 + any_errors_fatal: true + roles: + - role: aws_common + - role: product_common + - role: product_install + - role: jira_config + - role: product_startup + +- hosts: localhost + connection: local + roles: + - role: jira_zdu_finish \ No newline at end of file diff --git a/roles/jira_zdu_finish/defaults/main.yml b/roles/jira_zdu_finish/defaults/main.yml new file mode 100644 index 0000000..494c5b7 --- /dev/null +++ b/roles/jira_zdu_finish/defaults/main.yml @@ -0,0 +1,2 @@ +atl_jira_baseurl: "{{ atl_tomcat_scheme }}://{{ atl_proxy_name }}{{ atl_tomcat_contextpath }}" +atl_jira_zdu_rest_endpoint: "api/2/cluster/zdu" \ No newline at end of file diff --git a/roles/jira_zdu_finish/tasks/main.yml b/roles/jira_zdu_finish/tasks/main.yml new file mode 100644 index 0000000..bf38e6d --- /dev/null +++ b/roles/jira_zdu_finish/tasks/main.yml @@ -0,0 +1,35 @@ +--- + +- name: Assert cluster is ready to finalise upgrade + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/state" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: GET + status_code: 200 + register: upgrade_cluster_state + failed_when: upgrade_cluster_state.json is not defined or upgrade_cluster_state.json.state != 'READY_TO_RUN_UPGRADE_TASKS' + +- name: Approve cluster upgrade + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/approve" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: POST + status_code: 200 + +- name: Wait for cluster to finish running upgrade tasks + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/state" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: GET + status_code: 200 + register: post_upgrade_cluster_state + failed_when: post_upgrade_cluster_state.json is not defined or post_upgrade_cluster_state.json.state == 'READY_TO_UPGRADE' or post_upgrade_cluster_state.json.state == 'READY_TO_RUN_UPGRADE_TASKS' or post_upgrade_cluster_state.json.state == 'MIXED' + until: post_upgrade_cluster_state.json is defined and post_upgrade_cluster_state.json.state == 'STABLE' + retries: 120 + delay: 5 \ No newline at end of file diff --git a/roles/jira_zdu_init/defaults/main.yml b/roles/jira_zdu_init/defaults/main.yml new file mode 100644 index 0000000..494c5b7 --- /dev/null +++ b/roles/jira_zdu_init/defaults/main.yml @@ -0,0 +1,2 @@ +atl_jira_baseurl: "{{ atl_tomcat_scheme }}://{{ atl_proxy_name }}{{ atl_tomcat_contextpath }}" +atl_jira_zdu_rest_endpoint: "api/2/cluster/zdu" \ No newline at end of file diff --git a/roles/jira_zdu_init/tasks/main.yml b/roles/jira_zdu_init/tasks/main.yml new file mode 100644 index 0000000..a913531 --- /dev/null +++ b/roles/jira_zdu_init/tasks/main.yml @@ -0,0 +1,32 @@ +--- + +- name: Assert cluster is ready for upgrade + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/state" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: GET + status_code: 200 + register: pre_upgrade_cluster_state + +- name: Begin cluster upgrade + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/start" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: POST + status_code: 200 + when: pre_upgrade_cluster_state.json is defined and pre_upgrade_cluster_state.json.state == 'STABLE' + +- name: Verify cluster ready to upgrade + uri: + url: "{{ atl_jira_baseurl }}/{{ atl_jira_zdu_rest_endpoint }}/state" + force_basic_auth: yes + user: "{{ jira_admin_username }}" + password: "{{ jira_admin_password }}" + method: GET + status_code: 200 + register: upgrade_cluster_state + failed_when: upgrade_cluster_state.json is not defined or upgrade_cluster_state.json.state != 'READY_TO_UPGRADE'