--- # Build and install an Ironic Python Agent (IPA) image for the seed host's # ironic and ironic-inspector services. - name: Ensure Ironic Python Agent images are built and installed hosts: seed tags: - ipa-build vars: ipa_image_name: "ipa" ipa_images: - "{{ ipa_image_name }}.kernel" - "{{ ipa_image_name }}.initramfs" ipa_image_force_rebuild: false tasks: - block: # TODO(priteau): Move this to stackhpc.os-images - name: Ensure libgcrypt is updated package: name: libgcrypt state: latest become: True when: ansible_facts.os_family == 'RedHat' - name: Ensure Ironic Python Agent images are built include_role: name: stackhpc.os-images vars: os_images_package_dependencies_extra: "{{ ipa_build_dib_host_packages_extra | select | list }}" os_images_venv: "{{ virtualenv_path }}/ipa-build-dib" os_images_package_state: latest os_images_upper_constraints_file: "{{ ipa_build_upper_constraints_file }}" os_images_cache: "{{ image_cache_path }}" os_images_common: "" os_images_list: - name: "{{ ipa_image_name }}" elements: "{{ ipa_build_dib_elements }}" env: "{{ ipa_build_dib_env }}" packages: "{{ ipa_build_dib_packages }}" # Avoid needing to install qemu-img for qcow2 image. type: raw os_images_git_elements: "{{ ipa_build_dib_git_elements }}" os_images_upload: False os_images_force_rebuild: "{{ ipa_image_force_rebuild }}" - name: Ensure Ironic Python Agent images are copied onto seed copy: src: "{{ image_cache_path }}/{{ ipa_image_name }}/{{ item }}" dest: "/etc/kolla/bifrost/{{ item }}" remote_src: True with_items: "{{ ipa_images }}" become: True - name: Copy Ironic Python Agent images into /httpboot command: > docker exec bifrost_deploy bash -c 'ansible -vvvv target -i /bifrost/playbooks/inventory/target -m copy -a "src=/etc/bifrost/{{ item }} dest=/httpboot/{{ item }}" -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"' with_items: "{{ ipa_images }}" when: ipa_build_images | bool