bifrost/playbooks/test-bifrost-dynamic.yaml
Julia Kreger ec47c8528d Move DIB components to support depends-on
Until support for zuul-cloner arrives for bifrost's CI settings,
we need mechanisms to allow us test against a dependent revision
in the diskimage-builder repositioy.

As such, we've moved the diskimage-builder download and installation
to align with the other packages from source, and updated the CI
prep role to apply dependent revisions.

Additionally, correct conditionals in the OpenStack CI prep role.

Change-Id: Ie5db11ff7d2160c7cea9a71aebd86d1b369983c1
2015-08-11 06:58:18 -04:00

90 lines
3.4 KiB
YAML

# Example command line to use:
# Create a VM:
# ansible-playbook -vvvv -i inventory/localhost test-bifrost-create-vm.yaml
# Set BIFROST_INVENTORY_SOURCE
# export BIFROST_INVENTORY_SOURCE=/tmp/baremetal.csv
# Execute the installation and VM startup test.
# ansible-playbook -vvvv -i inventory/bifrost_inventory.py test-bifrost-dynamic.yaml -e use_cirros=true -e testing_user=cirros
---
- hosts: localhost
connection: local
name: "Executes install, enrollment, and testing in one playbook"
sudo: no
gather_facts: yes
pre_tasks:
- name: "Set ci_testing_zuul if it appears we are running in upstream OpenStack CI"
set_fact:
ci_testing: true
ci_testing_zuul: true
ironic_git_url: /opt/git/openstack/ironic
ironicclient_git_url: /opt/git/openstack/python-ironicclient
shade_git_url: /opt/git/openstack-infra/shade
dib_git_url: /opt/git/openstack/diskimage-builder
when: lookup('env', 'ZUUL_BRANCH') != ""
- name: "Set ci_testing_zuul_changes if ZUUL_CHANGES is set"
set_fact:
ci_testing_zuul_changes: true
when: lookup('env', 'ZUUL_CHANGES') != ""
- name: "Override the ipv4_gateway setting"
set_fact:
ipv4_gateway: "192.168.122.1"
roles:
- { role: bifrost-prep-for-install, when: skip_install is not defined }
- { role: bifrost-openstack-ci-prep, when: ci_testing_zuul is defined }
environment:
http_proxy: "{{ lookup('env','http_proxy') }}"
https_proxy: "{{ lookup('env','https_proxy') }}"
- hosts: localhost
connection: local
name: "Executes install, enrollment, and testing in one playbook"
sudo: yes
gather_facts: yes
pre_tasks:
- name: "Collect process list if running in a CI System"
command: ps aux
when: ci_testing is defined
- name: "Collect list of listening network sockets if running in a CI system"
shell: netstat -apn|grep LISTEN
when: ci_testing is defined
roles:
- role: bifrost-create-vm-nodes
- role: ironic-install
cleaning: false
testing: true
- { role: bifrost-create-dib-image, dib_imagetype: "qcow2", dib_imagename: "{{deploy_image}}", dib_os_element: "{{ dib_os_element|default('debian') }}", dib_elements: "vm serial-console simple-init {{ extra_dib_elements|default('') }}", dib_packages: "{{ dib_packages|default('') }}", when: create_image_via_dib == true and transform_boot_image == false }
- { role: bifrost-create-bootable-image, when: create_image_via_dib == false and transform_boot_image == true }
environment:
http_proxy: "{{ lookup('env','http_proxy') }}"
https_proxy: "{{ lookup('env','https_proxy') }}"
- hosts: baremetal
name: "Enroll node with Ironic"
sudo: no
connection: local
roles:
- role: ironic-enroll-dynamic
- hosts: baremetal
name: "Creat configuration drive files and deploy machines."
sudo: no
connection: local
roles:
- role: bifrost-configdrives-dynamic
- role: bifrost-deploy-nodes-dynamic
- role: bifrost-prepare-for-test-dynamic
# The testvm Host group is added by bifrost-prepare-for-test based
# on the contents of the CSV file.
- hosts: test
name: "Tests connectivity to the VM"
sudo: no
gather_facts: no
remote_user: "{{ testing_user }}"
roles:
- role: bifrost-test-vm
- hosts: baremetal
connection: local
name: "Unprovisions the test node"
sudo: no
gather_facts: no
roles:
- role: bifrost-unprovision-node-dynamic
- role: ironic-delete-dynamic