--- - name: Manage unique ID ansible.builtin.import_playbook: playbooks/unique-id.yml - name: Reproducer prepare play hosts: "{{ cifmw_target_host | default('localhost') }}" gather_facts: true tasks: - name: Run tasks - reproducer prepare when: - cifmw_deploy_reproducer_env | default(true) | bool block: - name: Inherit from parent scenarios if needed ansible.builtin.include_tasks: file: "ci/playbooks/tasks/inherit_parent_scenario.yml" - name: Include common architecture parameter file when: - cifmw_architecture_scenario is defined - cifmw_architecture_scenario | length > 0 ansible.builtin.include_vars: file: "scenarios/reproducers/va-common.yml" - name: Run reproducer validations ansible.builtin.import_role: name: reproducer tasks_from: validations.yml - name: Gather OS facts ansible.builtin.setup: gather_subset: - "!all" - "!min" - "distribution" - name: Tweak dnf configuration become: true community.general.ini_file: no_extra_spaces: true option: "{{ config.option }}" path: "/etc/dnf/dnf.conf" section: "{{ config.section | default('main') }}" state: "{{ config.state | default(omit) }}" value: "{{ config.value | default(omit) }}" mode: "0644" loop: "{{ cifmw_reproducer_dnf_tweaks }}" loop_control: label: "{{ config.option }}" loop_var: 'config' - name: Install custom CA if needed ansible.builtin.import_role: name: install_ca - name: Setup repositories via rhos-release if needed tags: - packages when: - ansible_facts['distribution'] == 'RedHat' - cifmw_reproducer_hp_rhos_release | bool vars: cifmw_repo_setup_output: /etc/yum.repos.d cifmw_repo_setup_rhos_release_args: "rhel" ansible.builtin.import_role: name: repo_setup tasks_from: rhos_release.yml - name: Run ci_setup ansible.builtin.import_role: name: ci_setup - name: Prepare switches vars: cifmw_configure_switches: "{{ 'switches' in groups }}" ansible.builtin.import_playbook: playbooks/switches_config.yml - name: Reproducer run hosts: "{{ cifmw_target_host | default('localhost') }}" gather_facts: false tasks: - name: Run reproducer role when: - cifmw_deploy_reproducer_env | default(true) | bool ansible.builtin.import_role: name: reproducer - name: Finish playbook if prepare environment executed when: - cifmw_deploy_reproducer_env | default(false) | bool ansible.builtin.meta: end_play - name: Allow traffic from OSP VMs to OSP API (needed for shiftstack) become: true when: cifmw_allow_vms_to_reach_osp_api | default (false) | bool block: - name: Allow traffic from OSP VMs to OSP API for ipv4 ansible.builtin.command: # noqa: command-instead-of-module cmd: iptables -I LIBVIRT_FWI 1 -o ocpbm -j ACCEPT - name: Allow traffic from OSP VMs to OSP API for ipv6 ansible.builtin.lineinfile: path: /etc/firewalld/firewalld.conf regexp: '^IPv6_rpfilter=' line: 'IPv6_rpfilter=no' - name: Restart firewalld.service ansible.builtin.systemd_service: name: firewalld state: restarted # NOTE(dpawlik): Keep support for legacy workflow where # controller host is created and actions are done not on # hypervisor directly, but on controller. # NOTE(dpawlik): Synchronize current Zuul repositories stored in $HOME/src # to controller-0 to make sure all projects are in state as they should. - name: Set hypervisor name if not defined when: hypervisor is not defined ansible.builtin.set_fact: hypervisor: "{{ ansible_fqdn }}" - name: Prepare job after earlier bootstrap by PreMetal when: - not cifmw_deploy_reproducer_env | default(true) | bool ansible.builtin.include_role: name: reproducer tasks_from: premetal.yml - name: Run deployment if instructed to when: - cifmw_deploy_architecture | default(false) | bool no_log: "{{ cifmw_nolog | default(true) | bool }}" async: "{{ 7200 + cifmw_test_operator_timeout | default(3600) }}" # 2h should be enough to deploy EDPM and rest for tests. poll: 20 delegate_to: controller-0 ansible.builtin.command: cmd: > $HOME/deploy-architecture.sh -e hypervisor="{{ hypervisor }}" {{ cifmw_deploy_architecture_args | default('') }} - name: Run post deployment if instructed to when: - cifmw_deploy_architecture | default(false) | bool - cifmw_post_deployment | default(true) | bool no_log: "{{ cifmw_nolog | default(true) | bool }}" async: "{{ 7200 + cifmw_test_operator_timeout | default(3600) }}" # 2h should be enough to deploy EDPM and rest for tests. poll: 20 delegate_to: controller-0 ansible.builtin.command: cmd: "$HOME/post_deployment.sh {{ cifmw_post_deploy_args | default('') }}"