bifrost/playbooks/roles/bifrost-create-dib-image/tasks/main.yml
Julia Kreger de7a20c8c5 Change DIB role to default to Debian jessie
In the event that Debian is selected or defaulted to for an image
build operation, then that image should be jessie based.

Added logic to check and set if so, and permit user override.

Change-Id: I2c54cd4ec11fe85c246c25c3bcc219a22ef26b12
2015-12-01 08:00:12 -05:00

126 lines
6.1 KiB
YAML

# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
# If attempting to utilize a base Ubuntu image, diskimage-builder
# is the recommended, and default path.
- name: "Test if image is present"
stat: path={{ dib_imagename }}
register: test_image_present
- name: "Test if image is present - {{ dib_imagename }}.{{ dib_imagetype | default('qcow2') }}"
stat: path={{ dib_imagename }}.{{ dib_imagetype | default('qcow2') }}
register: test_image_dib_present
when: test_image_present.stat.exists == false
# Note(TheJulia): We need to explicitly test for initramfs in the case
# that the ironic-agent element is used to build the image.
- name: "Test if image is present - {{ dib_imagename }}.initramfs"
stat: path={{ dib_imagename }}.initramfs
register: test_image_initramfs_present
when: test_image_present.stat.exists == false and test_image_dib_present.stat.exists == false
- name: "Build tracing (-x) option for disk-image-create"
set_fact:
dib_trace_arg: "-x"
when: dib_trace == true
- name: "Build uncompressed (-u) option for disk-image-create"
set_fact:
dib_uncompressed_arg: "-u"
when: dib_uncompressed == true
- name: "Build clear environment (-c) option for disk-image-create"
set_fact:
dib_clearenv_arg: "-c"
when: dib_clearenv == true
- name: "Build no tmpfs (--no-tmpfs) option for disk-image-create"
set_fact:
dib_notmpfs_arg: "--no-tmpfs"
when: dib_notmpfs == true
- name: "Build offline (--offline) option for disk-image-create"
set_fact:
dib_offline_arg: "--offline"
when: dib_offline == true
- name: "Build skip default base element (-n) option for disk-image-create"
set_fact:
dib_skipbase_arg: "-n"
when: dib_skipbase == true
- name: "Build architecture (-a) option for disk-image-create"
set_fact:
dib_arch_arg: "-a {{dib_arch}}"
when: dib_arch is defined
- name: "Build image name (-o) option for disk-image-create"
set_fact:
dib_imagename_arg: "-o {{dib_imagename}}"
when: dib_imagename is defined
- name: "Build image type (-t) option for disk-image-create"
set_fact:
dib_imagetype_arg: "-t {{dib_imagetype}}"
when: dib_imagetype is defined
- name: "Build image size (--image-size) option for disk-image-create"
set_fact:
dib_imagesize_arg: "--image-size {{dib_imagesize}}"
when: dib_imagesize is defined
- name: "Build image cache (--image-cache) option for disk-image-create"
set_fact:
dib_imagecache_arg: "--image-cache {{dib_imagecache}}"
when: dib_imagecache is defined
- name: "Build max online resize (--max-online-resize) option for disk-image-create"
set_fact:
dib_maxresize_arg: "--max-online-resize {{dib_maxresize}}"
when: dib_maxresize is defined
- name: "Build minimum tmpfs size (--min-tmpfs) option for disk-image-create"
set_fact:
dib_mintmpfs_arg: "--min-tmpfs {{dib_mintmpfs}}"
when: dib_mintmpfs is defined
- name: "Build mkfs options (--mkfs-options) option for disk-image-create"
set_fact:
dib_mkfsfopts_arg: "-mkfs-options {{dib_mkfsopts}}"
when: dib_mkfsopts is defined
- name: "Build qemu image options (--qemu-img-options) option for disk-image-create"
set_fact:
dib_qemuopts_arg: "--qemu-img-options {{dib_qemuopts}}"
when: dib_qemuopts is defined
- name: "Build root label (--root-label) option for disk-image-create"
set_fact:
dib_rootlabel_arg: "--root-label {{dib_rootlabel}}"
when: dib_rootlabel is defined
- name: "Build ramdisk element (--ramdisk-element) option for disk-image-create"
set_fact:
dib_rdelement_arg: "--ramdisk-element {{dib_rdelement}}"
when: dib_rdelement is defined
- name: "Build install type (--install-type) option for disk-image-create"
set_fact:
dib_installtype_arg: "-t {{dib_installtype}}"
when: dib_installtype is defined
- name: "Build packages (-p) option for disk-image-create"
set_fact:
dib_packages_arg: "-p {{dib_packages}}"
when: dib_packages is defined and dib_packages != ""
- name: "Set default of Debian Jessie if building debian and not explicitly set, overwride with dib_os_release setting"
set_fact:
dib_os_release: "jessie"
when: dib_os_element == "debian" and dib_os_release is undefined
- name: "Set the DIB_RELEASE environment variable if set"
set_fact:
dib_env_vars: "{{dib_env_vars | combine({'DIB_RELEASE':dib_os_release}) }}"
when: dib_os_release is defined
- name: "Build argument list"
set_fact:
dib_arglist: "{{dib_trace_arg|default('')}} {{dib_uncompressed_arg|default('')}} {{dib_clearenv_arg|default('')}} {{dib_notmpfs_arg|default('')}} {{dib_offline_arg|default('')}} {{dib_skipbase_arg|default('')}} {{dib_arch_arg|default('')}} {{dib_imagename_arg|default('')}} {{dib_imagetype_arg|default('')}} {{dib_imagesize_arg|default('')}} {{dib_imagecache_arg|default('')}} {{dib_maxresize_arg|default('')}} {{dib_mintmpfs_arg|default('')}} {{dib_mkfsopts_arg|default('')}} {{dib_qemuopts_arg|default('')}} {{dib_rootlabel_arg|default('')}} {{dib_rdelement_arg|default('')}} {{dib_installtype_arg|default('')}} {{dib_packages_arg|default('')}} {{dib_os_element}} {{dib_elements|default('')}}"
- name: "Initiate image build"
command: disk-image-create {{dib_arglist}}
environment: "{{ dib_env_vars }}"
when: build_ramdisk | bool == false and test_image_present.stat.exists == false and test_image_dib_present.stat.exists == false and test_image_initramfs_present.stat.exists == false
- name: "Initiate ramdisk build"
command: ramdisk-image-create {{dib_arglist}}
environment: "{{ dib_env_vars }}"
when: build_ramdisk | bool == true and test_image_present.stat.exists == false and test_image_dib_present.stat.exists == false and test_image_initramfs_present.stat.exists == false