From e66847184999a84c472648e78d71e12b7c5b23d2 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 7 Mar 2018 16:36:03 +0000 Subject: bifrost: Use the pre-built XCI OS images instead of dib We already have images for all 3 distros which we could simply re-use for all the XCI VM deployments instead of building new ones everytime with DIB. The images will be copied to the new VM from the cache directory if they are available otherwise we will simply download them during the XCI execution phase. Change-Id: I2a8391650558511668654c6b54a10db316f867a2 Signed-off-by: Markos Chandras --- bifrost/playbooks/opnfv-virtual.yaml | 48 ++++++++++++++++++++++++++++++++++-- bifrost/scripts/bifrost-provision.sh | 4 ++- 2 files changed, 49 insertions(+), 3 deletions(-) (limited to 'bifrost') diff --git a/bifrost/playbooks/opnfv-virtual.yaml b/bifrost/playbooks/opnfv-virtual.yaml index 4e985db8..cfcb71a1 100644 --- a/bifrost/playbooks/opnfv-virtual.yaml +++ b/bifrost/playbooks/opnfv-virtual.yaml @@ -24,6 +24,45 @@ - name: "Override the ipv4_gateway setting" set_fact: ipv4_gateway: "192.168.122.1" + - name: Prepare the XCI pre-built images + block: + - name: Create the PXE directory + file: + path: /httpboot + state: directory + become: yes + - name: Download the {{ xci_distro }} image checksum file + get_url: + dest: /httpboot/{{ xci_distro }}.qcow2.sha256.txt + force: no + url: http://artifacts.opnfv.org/releng/xci/images/{{ xci_distro }}.qcow2.sha256.txt + timeout: 3000 + become: yes + - name: Extract checksum + shell: awk '{print $1}' /httpboot/{{ xci_distro }}.qcow2.sha256.txt + register: _image_checksum + - fail: + msg: "Failed to get image checksum" + when: _image_checksum == '' + - set_fact: + image_checksum: "{{ _image_checksum.stdout }}" + - name: Download the {{ xci_distro }} image file + get_url: + url: http://artifacts.opnfv.org/releng/xci/images/{{ xci_distro }}.qcow2 + checksum: "sha256:{{ image_checksum }}" + timeout: 3000 + dest: /httpboot/deployment_image.qcow2 + force: no + become: yes + - name: Set correct mode for {{ xci_distro }}.qcow2 file + file: + path: /httpboot/deployment_image.qcow2 + mode: '0755' + owner: 'root' + group: 'root' + become: yes + when: use_prebuilt_images | bool == true + roles: - { role: bifrost-prep-for-install, when: skip_install is not defined } environment: @@ -49,7 +88,9 @@ dib_os_release: "jessie" dib_elements: "ironic-agent {{ ipa_extra_dib_elements | default('') }}" dib_notmpfs: true - when: create_ipa_image | bool == true + when: + - create_ipa_image | bool == true + - not use_prebuilt_images | bool == false - role: bifrost-create-dib-image dib_imagetype: "qcow2" dib_imagename: "{{deploy_image}}" @@ -61,7 +102,10 @@ dib_elements: "vm enable-serial-console simple-init devuser openssh-server growroot pip-and-virtualenv {{ extra_dib_elements }}" dib_packages: "{{ lookup('env', 'DIB_OS_PACKAGES') }}" dib_notmpfs: true - when: create_image_via_dib | bool == true and transform_boot_image | bool == false + when: + - create_image_via_dib | bool == true + - transform_boot_image | bool == false + - use_prebuilt_images | bool == false - role: bifrost-keystone-client-config user: "{{ ansible_env.SUDO_USER }}" clouds: diff --git a/bifrost/scripts/bifrost-provision.sh b/bifrost/scripts/bifrost-provision.sh index e64277d6..5ebe2031 100755 --- a/bifrost/scripts/bifrost-provision.sh +++ b/bifrost/scripts/bifrost-provision.sh @@ -141,7 +141,9 @@ ${ANSIBLE} ${XCI_ANSIBLE_VERBOSITY} \ -e ironicinspectorclient_git_branch=${BIFROST_IRONIC_INSPECTOR_CLIENT_VERSION} \ -e ironicclient_source_install=true \ -e ironicclient_git_branch=${BIFROST_IRONIC_CLIENT_VERSION} \ - -e ironic_git_branch=${BIFROST_IRONIC_VERSION} + -e ironic_git_branch=${BIFROST_IRONIC_VERSION} \ + -e use_prebuilt_images=${BIFROST_USE_PREBUILT_IMAGES} \ + -e xci_distro=${XCI_DISTRO} EXITCODE=$? if [ $EXITCODE != 0 ]; then -- cgit 1.2.3-korg