--- - name: Get python_v fact for py2 or py3 common vars include_tasks: check_set_py3.yaml - name: Include OS specific variables for C7 or C9 include_vars: "centos-{{ ansible_distribution_major_version }}.yaml" when: - ansible_distribution == "CentOS" - ansible_distribution_major_version is version('7', '==') or ansible_distribution_major_version is version('9', '==') - name: Make sure logs directory exists file: path: '{{ workspace }}/logs' state: directory - name: Get the latest image on demand when: - tripleo_ci_discover_latest | bool block: - name: Find latest image name vars: base_url: "{{ tripleo_ci_discover_base_url }}" qcow_prefix: "{{ tripleo_ci_discover_qcow_prefix }}" import_role: name: discover-latest-image - name: Set needed facts set_fact: cacheable: true tripleo_image_source: "{{ discovered_image_url }}" baseos_undercloud_image_url: "{{ discovered_image_url }}" baseos_image: "{{ ansible_distribution | lower }}" baseos_image_type: qcow2 baseos_md5sum: "{{ discovered_md5sum }} {{ discovered_image_name }}" - name: Set dib related facts used by tripleo-ci build-image role build template set_fact: dib_local_image: "{{ workspace }}/{{ tripleo_image_source | urlsplit('path') | basename }}" dib_node_dist: "{{ (ansible_distribution == 'RedHat') | ternary('rhel', 'centos') }}" cacheable: true when: tripleo_image_source is defined - name: Install libselinux-python3 package: name: libselinux-python3 state: present become: true - name: Download TripleO source image get_url: url: "{{ tripleo_image_source }}" dest: "{{ dib_local_image }}" timeout: 20 register: result until: result is success retries: 60 delay: 10 vars: ansible_python_interpreter: /usr/bin/python3 - name: Install qemu-img for image build package: name: qemu-img state: present become: true - name: virt-customize to add cert include_tasks: add_cert.yaml args: apply: become: true when: ansible_distribution|lower == "redhat" - name: Install python3-devel package: name: python3-devel # required for python-tripleoclient pip install state: present become: true - name: Install python-tripleoclient for Image build package: name: "python*-tripleoclient" state: present become: true - name: Generate build-images.sh script template: src: templates/build-images.sh.j2 dest: "{{ workspace }}/build_images.sh" mode: 0777 force: true - name: Run build-images.sh args: chdir: '{{ workspace }}' shell: bash build_images.sh > {{ workspace }}/logs/script_build.log 2> {{ workspace }}/logs/script_build-err.log changed_when: true - when: tripleo_image_source is defined block: - name: check if overcloud images were built stat: path: "{{ workspace }}/overcloud-full.qcow2" register: overcloud_stat_result - name: check if overcloud-hardened-uefi-full images were built stat: path: "{{ workspace }}/overcloud-hardened-uefi-full.qcow2" register: overcloud_hardened_uefi_stat_result - name: check if ipa images were built stat: path: "{{ workspace }}/ironic-python-agent.kernel" register: ipa_stat_result - when: ipa_stat_result.stat.exists|bool block: - name: ironic-python-agent archive: path: - "{{ workspace }}/ironic-python-agent.initramfs" - "{{ workspace }}/ironic-python-agent.kernel" dest: "{{ oooci_image_build_archive_dest }}/ironic-python-agent.tar" format: tar - name: Create md5sums shell: cmd: | md5sum ironic-python-agent.tar > ironic-python-agent.tar.md5 args: chdir: "{{ oooci_image_build_archive_dest }}" - when: overcloud_stat_result.stat.exists|bool block: - name: overcloud-full archive: path: - "{{ workspace }}/overcloud-full.qcow2" - "{{ workspace }}/overcloud-full.initrd" - "{{ workspace }}/overcloud-full.vmlinuz" dest: "{{ oooci_image_build_archive_dest }}/overcloud-full.tar" format: tar - name: Create md5sums shell: cmd: | md5sum overcloud-full.tar > overcloud-full.tar.md5 args: chdir: "{{ oooci_image_build_archive_dest }}" - when: overcloud_hardened_uefi_stat_result.stat.exists|bool block: - name: "Move image to {{ oooci_image_build_archive_dest }}" command: "mv {{ workspace }}/overcloud-hardened-uefi-full.qcow2 {{ oooci_image_build_archive_dest }}" when: workspace != oooci_image_build_archive_dest - name: Create md5sums shell: cmd: | md5sum overcloud-hardened-uefi-full.qcow2 > overcloud-hardened-uefi-full.qcow2.md5 args: chdir: "{{ oooci_image_build_archive_dest }}" - block: - name: Run Image sanity on overcloud image include_tasks: image_sanity.yaml become: true when: - tripleo_image_type is search("overcloud-full") - image_sanity | bool - overcloud_stat_result.stat.exists|bool