- block: - include_role: name: tripleo_container_rm name: Remove non-HA cinder-backup container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - cinder_backup name: Tear-down non-HA cinder_backup container when: - step|int == 0 - block: - failed_when: false name: Get cinder_backup image id currently used by pacemaker register: cinder_backup_image_current_res shell: pcs resource config openstack-cinder-backup | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: cinder_backup image facts set_fact: cinder_backup_image_current: '{{cinder_backup_image_current_res.stdout}}' cinder_backup_image_latest: cluster.common.tag/cinder-backup:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current cinder_backup image id with the upgraded image name vars: container_image: '{{cinder_backup_image_current}}' container_image_latest: '{{cinder_backup_image_latest}}' pull_image: false when: - cinder_backup_image_current != '' - cinder_backup_image_current != cinder_backup_image_latest - file: path: /var/lib/tripleo/cinder_backup_needs_retag state: touch name: Create cinder_backup retag statefile when: - cinder_backup_image_current != '' - cinder_backup_image_current != cinder_backup_image_latest name: Prepare switch of cinder_backup image name when: - step|int == 0 - block: - include_role: name: tripleo_container_rm name: Remove non-HA cinder_volume container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - cinder_volume name: Tear-down non-HA cinder_volume container when: - step|int == 0 - block: - failed_when: false name: Get cinder_volume image id currently used by pacemaker register: cinder_volume_image_current_res shell: pcs resource config openstack-cinder-volume | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: cinder_volume image facts set_fact: cinder_volume_image_current: '{{cinder_volume_image_current_res.stdout}}' cinder_volume_image_latest: cluster.common.tag/cinder-volume:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current cinder_volume image id with the upgraded image name vars: container_image: '{{cinder_volume_image_current}}' container_image_latest: '{{cinder_volume_image_latest}}' pull_image: false when: - cinder_volume_image_current != '' - cinder_volume_image_current != cinder_volume_image_latest - file: path: /var/lib/tripleo/cinder_volume_needs_retag state: touch name: Create cinder_volume retag statefile when: - cinder_volume_image_current != '' - cinder_volume_image_current != cinder_volume_image_latest name: Prepare switch of cinder_volume image name when: - step|int == 0 - include_role: name: tripleo_podman tasks_from: tripleo_podman_rsyslog_cleanup name: remove rsyslog configuration for podman healthcheck log - block: - include_role: name: tripleo_container_rm name: Remove non-HA haproxy container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - haproxy name: Tear-down non-HA haproxy container when: - step|int == 0 - block: - failed_when: false name: Get haproxy image id currently used by pacemaker register: haproxy_image_current_res shell: pcs resource config haproxy-bundle | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: Image facts for haproxy set_fact: haproxy_image_current: '{{haproxy_image_current_res.stdout}}' haproxy_image_latest: cluster.common.tag/haproxy:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current haproxy image id with the upgraded image name vars: container_image: '{{haproxy_image_current}}' container_image_latest: '{{haproxy_image_latest}}' pull_image: false when: - haproxy_image_current != '' - haproxy_image_current != haproxy_image_latest - file: path: /var/lib/tripleo/haproxy_needs_retag state: touch name: Create haproxy retag statefile when: - haproxy_image_current != '' - haproxy_image_current != haproxy_image_latest name: Prepare switch of haproxy image name when: - step|int == 0 - block: - file: mode: 1023 path: /var/tmp setype: tmp_t state: directory name: Reset selinux label on /var/tmp name: Anchor for upgrade and update tasks when: step|int == 0 - block: - failed_when: false name: Get manila_share image id currently used by pacemaker register: manila_share_image_current_res shell: pcs resource config openstack-manila-share | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: manila_share image facts set_fact: manila_share_image_current: '{{manila_share_image_current_res.stdout}}' manila_share_image_latest: cluster.common.tag/manila-share:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current manila_share image id with the upgraded image name vars: container_image: '{{manila_share_image_current}}' container_image_latest: '{{manila_share_image_latest}}' pull_image: false when: - manila_share_image_current != '' - manila_share_image_current != manila_share_image_latest - file: path: /var/lib/tripleo/manila_share_needs_retag state: touch name: Create manila_share retag statefile when: - manila_share_image_current != '' - manila_share_image_current != manila_share_image_latest name: Prepare switch of manila_share image name when: - step|int == 0 - block: - changed_when: false command: podman container exists mysql failed_when: false name: stat mysql container register: stat_mysql_container - changed_when: true command: argv: '{{ mysql_exec_data | container_exec_cmd }}' name: Create clustercheck user and permissions vars: mysql_exec_data: command: - mysql - /bin/sh - -c - mysql -e "CREATE USER IF NOT EXISTS 'clustercheck'@'localhost' IDENTIFIED BY '${CLUSTERCHECK_PASSWORD}'; GRANT PROCESS ON *.* TO 'clustercheck'@'localhost' WITH GRANT OPTION;" environment: CLUSTERCHECK_PASSWORD: Zx168jeh3U8PrH2bvkjORV2bD when: - stat_mysql_container.rc == 0 - include_role: name: tripleo_container_rm name: Remove non-HA mysql container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - mysql name: Tear-down non-HA mysql container when: - step|int == 0 - block: - failed_when: false name: Get galera image id currently used by pacemaker register: galera_image_current_res shell: pcs resource config galera-bundle | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: Image facts for galera set_fact: galera_image_current: '{{galera_image_current_res.stdout}}' galera_image_latest: cluster.common.tag/mariadb:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current galera image id with the upgraded image name vars: container_image: '{{galera_image_current}}' container_image_latest: '{{galera_image_latest}}' pull_image: false when: - galera_image_current != '' - galera_image_current != galera_image_latest - file: path: /var/lib/tripleo/galera_needs_retag state: touch name: Create galera retag statefile when: - galera_image_current != '' - galera_image_current != galera_image_latest name: Prepare switch of galera image name when: - step|int == 0 - block: - include_role: name: tripleo_container_rm name: Remove non-HA rabbitmq container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - rabbitmq name: Tear-down non-HA rabbitmq container when: - step|int == 0 - block: - failed_when: false name: Get rabbitmq image id currently used by pacemaker register: rabbitmq_rpc_image_current_res shell: pcs resource config rabbitmq-bundle | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: Image facts for rabbitmq set_fact: rabbitmq_rpc_image_current: '{{rabbitmq_rpc_image_current_res.stdout}}' rabbitmq_rpc_image_latest: cluster.common.tag/rabbitmq:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current rabbitmq image id with the upgraded image name vars: container_image: '{{rabbitmq_rpc_image_current}}' container_image_latest: '{{rabbitmq_rpc_image_latest}}' pull_image: false when: - rabbitmq_rpc_image_current != '' - rabbitmq_rpc_image_current != rabbitmq_rpc_image_latest - file: path: /var/lib/tripleo/rabbitmq_rpc_needs_retag state: touch name: Create rabbitmq_rpc retag statefile when: - rabbitmq_rpc_image_current != '' - rabbitmq_rpc_image_current != rabbitmq_rpc_image_latest name: Prepare switch of rabbitmq image name when: - step|int == 0 - block: - include_role: name: tripleo_container_rm name: Remove non-HA redis container vars: tripleo_container_cli: '{{ container_cli }}' tripleo_containers_to_rm: - redis name: Tear-down non-HA redis container when: - step|int == 0 - block: - failed_when: false name: Get redis image id currently used by pacemaker register: redis_image_current_res shell: pcs resource config redis-bundle | grep -Eo 'image=[^ ]+' | awk -F= '{print $2;}' - name: Image facts for redis set_fact: redis_image_current: '{{redis_image_current_res.stdout}}' redis_image_latest: cluster.common.tag/redis:pcmklatest - import_role: name: tripleo_container_tag name: Temporarily tag the current redis image id with the upgraded image name vars: container_image: '{{redis_image_current}}' container_image_latest: '{{redis_image_latest}}' pull_image: false when: - redis_image_current != '' - redis_image_current != redis_image_latest - file: path: /var/lib/tripleo/redis_needs_retag state: touch name: Create redis retag statefile when: - redis_image_current != '' - redis_image_current != redis_image_latest name: Prepare switch of redis image name when: - step|int == 0 - block: - command: systemctl is-enabled --quiet snmpd failed_when: false name: Check if snmpd is enabled register: snmpd_enabled_result - name: Set fact snmpd_enabled set_fact: snmpd_enabled: '{{ snmpd_enabled_result.rc == 0 }}' when: step|int == 0 - name: Gather missing facts setup: gather_subset: - '!all' - '!min' - distribution tags: - always - name: Set leapp facts set_fact: upgrade_leapp_command_options: '' upgrade_leapp_debug: false upgrade_leapp_devel_skip: '' upgrade_leapp_enabled: "{{ _upgradeLeappEnabled | bool and\n ansible_facts['distribution']\ \ == 'RedHat' and\n ansible_facts['distribution_major_version'] is version('8',\ \ '==') }}" upgrade_leapp_post_reboot_delay: 120 upgrade_leapp_reboot_timeout: 3600 tags: - always vars: _upgradeLeappEnabled: false - block: - block: - name: Run UpgradeInitCommand shell: '#!/bin/bash if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi ' - name: Run UpgradeInitCommonCommand shell: '#!/bin/bash ' - dnf: name: '@{{ item.module }}:{{ item.stream }}/{{ item.profile|default(''common'') }}' state: present loop: '{{ dnf_module_list|list }}' name: Ensure DNF modules have the right stream vars: dnf_module_list: [] when: - dnf_module_list|length > 0 - item.distribution_version is defined - ansible_facts['distribution_major_version'] is version(item.distribution_version, '==') - name: Ensure TripleO prerequisite packages are installed package: name: - jq - lvm2 - openstack-selinux - os-net-config - puppet-tripleo - python3-heat-agent* - rsync state: present when: ansible_facts['distribution_major_version'] is version('8', '==') - name: Ensure TripleO prerequisite packages are installed and use role based heat variable to provide specific list of packages package: name: '{{ base_tripleo_packages }}' state: present vars: base_tripleo_packages: [] when: - ansible_facts['distribution_major_version'] is version('8', '==') - base_tripleo_packages|length > 0 - name: WA for 2240185 - If the image is schema 1 and lacks signatures than add empty signatures shell: "for manifest_file in `find /var/lib/containers/storage/overlay-images/\ \ -name 'manifest'`\ndo\n cat <<< $( jq 'if .schemaVersion == 1 then if\ \ has(\"signatures\") then . else .signatures=[] end else . end' $manifest_file\ \ ) > $manifest_file\ndone\n" when: ansible_facts['distribution_major_version'] is version('8', '==') name: Package and repo update tasks - check_mode: false command: /usr/bin/rpm -q libvirt-daemon failed_when: false name: check if libvirt is installed register: libvirt_installed - loop: - libvirtd.service - virtlogd.socket name: make sure libvirt services are disabled and masked service: daemon_reload: true enabled: false masked: true name: '{{ item }}' state: stopped when: - libvirt_installed.rc == 0 name: Host packages setup step0 tags: setup_packages when: step|int == 0