kayobe/ansible/test-image.yml
2017-02-14 15:14:29 +00:00

88 lines
2.9 KiB
YAML

---
- name: Ensure user images are built and registered with Glance
hosts: seed[0]
vars:
openstack_auth:
auth_url: "{{ lookup('env', 'OS_AUTH_URL') }}"
username: "{{ lookup('env', 'OS_USERNAME') }}"
password: "{{ lookup('env', 'OS_PASSWORD') }}"
project_name: "{{ lookup('env', 'OS_PROJECT_NAME') }}"
project_domain_name: "{{ lookup('env', 'OS_PROJECT_DOMAIN_NAME') }}"
user_domain_name: "{{ lookup('env', 'OS_USER_DOMAIN_NAME') }}"
image_build_dir: "{{ ansible_user_dir }}/images/dib"
image_name: centos7
image_os_element: centos7
image_base_elements:
- dhcp-all-interfaces
image_is_whole_disk: True
image_whole_disk_elements:
- vm
image_partition_elements:
- baremetal
- grub2
image_extra_elements: []
image_elements: "{{ image_base_elements + (image_whole_disk_elements if image_is_whole_disk|bool else image_partition_elements) + image_extra_elements }}"
tasks:
- name: Ensure diskimage-builder package is installed
yum:
name: diskimage-builder
state: installed
become: True
- name: Ensure OpenStack shade module is installed
pip:
name: shade
become: True
- name: Ensure image build directory exists
file:
path: "{{ image_build_dir }}"
state: directory
- name: Display image elements
debug:
var: image_elements
- name: Ensure CentOS 7 image is built
command: >
disk-image-create
{{ image_os_element }}
{{ image_elements|join(' ') }}
-o {{ image_name }}
args:
chdir: "{{ image_build_dir }}"
creates: "{{ image_build_dir }}/{{ image_name }}.qcow2"
- name: Ensure test deployment ramdisk and kernel images are registered with Glance
os_image:
auth: "{{ openstack_auth }}"
name: "{{ image_name }}.{{ item.ext }}"
container_format: "{{ item.container_format }}"
disk_format: "{{ item.disk_format }}"
filename: "{{ image_build_dir }}/{{ image_name }}.{{ item.ext }}"
state: present
with_items:
- { container_format: ari, disk_format: ari, ext: initrd }
- { container_format: aki, disk_format: aki, ext: vmlinuz }
register: r_and_k_result
when: not image_is_whole_disk|bool
- name: Ensure test deployment image is registered with Glance
os_image:
auth: "{{ openstack_auth }}"
name: "{{ image_name }}"
container_format: bare
disk_format: qcow2
filename: "{{ image_build_dir }}/{{ image_name }}.qcow2"
state: present
# FIXME: This does not seem to work :(
- name: Ensure test deployment image has kernel and ramdisk properties
os_image:
auth: "{{ openstack_auth }}"
name: "{{ image_name }}"
ramdisk: "{{ image_name }}.initrd"
kernel: "{{ image_name }}.vmlinuz"
state: present
when: not image_is_whole_disk|bool