From ccb1391783ab562d0b3017f81e5658d18952b9d3 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Tue, 9 Jun 2020 12:43:24 -0600 Subject: [PATCH] Collapse deploy steps Once again we're splitting the deployment steps into multiple plays which causes ansible to artificially stop at the end of each play when using a free-style strategy. By combining the deploy steps, bootstrap tasks and common deploy steps, we can run each step to completion in parallel rather than stopping at each of these for every step. This will reduce the overall play count to (1*6) instead of (3*6+1) Change-Id: I986391617231b9dd23aa487d73db490db84f61ce (cherry picked from commit f82af5595a7e8b377a7aef66b947b73b5ec8ae90) --- common/deploy-steps.j2 | 95 +++++++++++++----------------------------- 1 file changed, 28 insertions(+), 67 deletions(-) diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2 index f8f1221f47..dfd8a06235 100644 --- a/common/deploy-steps.j2 +++ b/common/deploy-steps.j2 @@ -745,77 +745,38 @@ outputs: - tripleo_role_name == '{{role.name}}' - "{% raw %}'{{ playbook_dir }}/{{ _task_file_path }}' is exists{% endraw %}" {%- endfor %} - tags: - - overcloud - - deploy_steps - - step{{step}} - {% if step == 1 %} - - hosts: {{primary_role_name}}:DEPLOY_TARGET_HOST - name: Overcloud common bootstrap tasks for step 1 - gather_facts: "{% raw %}{{ gather_facts | default(false) }}{% endraw %}" - any_errors_fatal: yes - vars: - bootstrap_server_id: BOOTSTRAP_SERVER_ID - step: '{{step}}' - deploy_identifier: DEPLOY_IDENTIFIER - enable_debug: ENABLE_DEBUG - enable_puppet: ENABLE_PUPPET - container_cli: CONTAINER_CLI - container_log_stdout_path: CONTAINER_LOG_STDOUT_PATH - container_healthcheck_disabled: CONTAINER_HEALTHCHECK_DISABLED - docker_puppet_debug: DOCKER_PUPPET_DEBUG - docker_puppet_process_count: DOCKER_PUPPET_PROCESS_COUNT - docker_puppet_mount_host_puppet: DOCKER_PUPPET_MOUNT_HOST_PUPPET - tasks: - name: Overcloud common bootstrap tasks for step 1 - delegate_to: localhost - run_once: true - debug: - msg: Use --start-at-task 'Overcloud common bootstrap tasks for step 1' to resume from this task - - name: "Check if /var/lib/tripleo-config/container-startup-config/step_{{step}} already exists" - stat: - path: "/var/lib/tripleo-config/container-startup-config/step_{{step}}" - register: container_startup_configs_json_stat - - name: Write config data at the start of step 1 - include_tasks: common_deploy_steps_tasks_step_1.yaml - when: - - ((deploy_identifier is defined and deploy_identifier != "" and deploy_identifier is not none) or not container_startup_configs_json_stat.stat.exists) - tags: - - overcloud - - deploy_steps - - step{{step}} - + block: + - name: Overcloud common bootstrap tasks for step 1 + delegate_to: localhost + run_once: true + debug: + msg: Use --start-at-task 'Overcloud common bootstrap tasks for step 1' to resume from this task + - name: "Check if /var/lib/tripleo-config/container-startup-config/step_{{step}} already exists" + stat: + path: "/var/lib/tripleo-config/container-startup-config/step_{{step}}" + register: container_startup_configs_json_stat + - name: Write config data at the start of step 1 + include_tasks: common_deploy_steps_tasks_step_1.yaml + when: + - ((deploy_identifier is defined and deploy_identifier != "" and deploy_identifier is not none) or + not container_startup_configs_json_stat.stat.exists) {% endif %} - - hosts: {{primary_role_name}}:DEPLOY_TARGET_HOST - name: Overcloud common deploy step tasks {{step}} - gather_facts: "{% raw %}{{ gather_facts | default(false) }}{% endraw %}" - any_errors_fatal: yes - vars: - bootstrap_server_id: BOOTSTRAP_SERVER_ID - step: '{{step}}' - deploy_identifier: DEPLOY_IDENTIFIER - enable_debug: ENABLE_DEBUG - enable_puppet: ENABLE_PUPPET - container_cli: CONTAINER_CLI - container_log_stdout_path: CONTAINER_LOG_STDOUT_PATH - container_healthcheck_disabled: CONTAINER_HEALTHCHECK_DISABLED - docker_puppet_debug: DOCKER_PUPPET_DEBUG - docker_puppet_process_count: DOCKER_PUPPET_PROCESS_COUNT - docker_puppet_mount_host_puppet: DOCKER_PUPPET_MOUNT_HOST_PUPPET - tasks: - name: Overcloud common deploy step tasks {{step}} - delegate_to: localhost - run_once: true - debug: - msg: Use --start-at-task 'Overcloud common deploy step tasks {{step}}' to resume from this task - - name: "Check if /var/lib/tripleo-config/container-startup-config/step_{{step}} already exists" - stat: - path: "/var/lib/tripleo-config/container-startup-config/step_{{step}}" - register: container_startup_configs_json_stat - - include_tasks: common_deploy_steps_tasks.yaml - when: (deploy_identifier is defined and deploy_identifier != "" and deploy_identifier is not none) or - (container_startup_configs_json_stat is defined and not container_startup_configs_json_stat.stat.exists) + block: + - name: Overcloud common deploy step tasks {{step}} + delegate_to: localhost + run_once: true + debug: + msg: Use --start-at-task 'Overcloud common deploy step tasks {{step}}' to resume from this task + - name: "Check if /var/lib/tripleo-config/container-startup-config/step_{{step}} already exists" + stat: + path: "/var/lib/tripleo-config/container-startup-config/step_{{step}}" + register: container_startup_configs_json_stat + - include_tasks: common_deploy_steps_tasks.yaml + when: (deploy_identifier is defined and deploy_identifier != "" and deploy_identifier is not none) or + (container_startup_configs_json_stat is defined and not container_startup_configs_json_stat.stat.exists) tags: - overcloud - deploy_steps