a493cc923e
Somewhere along the way we lost, or never had, retrieval of keystone from git. Now that the keystone patches have landed, we need to make sure the test script actually works on a blank machine. Change-Id: If57b9069d8e2b74011ae038489afaee435584f9f
109 lines
4.8 KiB
YAML
109 lines
4.8 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"
|
|
become: no
|
|
gather_facts: yes
|
|
pre_tasks:
|
|
- debug: msg="WARNING - This playbook will be deprecated in a future release. Please use test-bifrost.yaml."
|
|
- 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: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic"
|
|
ironicclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironicclient"
|
|
shade_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack-infra/shade"
|
|
dib_git_url: "/opt/git/openstack/diskimage-builder"
|
|
ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector"
|
|
ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client"
|
|
keystone_git_url: https://git.openstack.org/openstack/keystone
|
|
reqs_git_url: "/opt/git/openstack/requirements"
|
|
staging_drivers_git_url: "/opt/git/openstack/ironic-staging-drivers"
|
|
# TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib
|
|
# folder cloned, while the gate job does not. Likely need to work out a semi-hybrid
|
|
# solution.
|
|
when: lookup('env', 'ZUUL_BRANCH') | length > 0
|
|
- name: "Set ci_testing_zuul_changes if ZUUL_CHANGES is set"
|
|
set_fact:
|
|
ci_testing_zuul_changes: true
|
|
when: lookup('env', 'ZUUL_CHANGES') | length > 0
|
|
- 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"
|
|
become: 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: bifrost-ironic-install
|
|
cleaning: false
|
|
testing: true
|
|
# NOTE(TheJulia): While the next step creates a ramdisk, some elements
|
|
# do not support ramdisk-image-create as they invoke steps to cleanup
|
|
# the ramdisk which causes ramdisk-image-create to believe it failed.
|
|
- { role: bifrost-create-dib-image, dib_imagename: "{{ http_boot_folder }}/ipa", build_ramdisk: false, dib_os_element: "{{ ipa_dib_os_element|default('debian') }}", dib_os_release: "jessie", dib_elements: "ironic-agent {{ ipa_extra_dib_elements | default('') }}", when: create_ipa_image | bool == true }
|
|
- { role: bifrost-create-dib-image, dib_imagetype: "qcow2", dib_imagename: "{{deploy_image}}", dib_os_element: "debian", dib_os_release: "jessie", dib_elements: "vm serial-console simple-init {{ extra_dib_elements|default('') }}", when: create_image_via_dib | bool == true and transform_boot_image | bool == false }
|
|
environment:
|
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
|
- hosts: baremetal
|
|
name: "Enroll node with Ironic"
|
|
become: no
|
|
connection: local
|
|
roles:
|
|
- role: ironic-enroll-dynamic
|
|
- { role: ironic-inspect-node, when: inspect_nodes | default('false') | bool == true }
|
|
- hosts: baremetal
|
|
name: "Create configuration drive files and deploy machines"
|
|
become: no
|
|
connection: local
|
|
roles:
|
|
- role: bifrost-configdrives-dynamic
|
|
- role: bifrost-deploy-nodes-dynamic
|
|
- hosts: baremetal
|
|
name: "Prepare for deployment verification"
|
|
become: no
|
|
connection: local
|
|
serial: 1
|
|
roles:
|
|
- 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"
|
|
become: no
|
|
gather_facts: no
|
|
remote_user: "{{ testing_user }}"
|
|
roles:
|
|
- { role: bifrost-test-vm, deprecated_test_playbook: true }
|
|
- hosts: baremetal
|
|
connection: local
|
|
name: "Unprovisions the test node"
|
|
become: no
|
|
gather_facts: no
|
|
roles:
|
|
- role: bifrost-unprovision-node-dynamic
|
|
- role: ironic-delete-dynamic
|