a48cc3d50e
In order to utilize ubuntu-minimal, we need to install an additional package in order to login to the host. As such, we have updated the playbooks to support the dib_packages variable to allow a user to explicitly state if they want to install openssh-server, or any other required software when building their image. At this time, staying with debian as the default image, although it does ship with cloud-init, it does not interfere with local testing. Change-Id: Ic537d2b1e13cc35379d77f078bcc1a1faeb3f526
89 lines
3.4 KiB
YAML
89 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
|
|
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
|