175 lines
5.2 KiB
YAML
175 lines
5.2 KiB
YAML
---
|
|
- 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
|