# This is an example playbook utilizing role conditionals to permit # deployment on available nodes. # # To utilize: # export BIFROST_INVENTORY_SOURCE=ironic # ansible-playbook -vvvv -i inventory/bifrost_inventory.py example-deploy-all-available-nodes.yaml # # NOTE(TheJulia): The format of this example will cause hosts to be deployed # utilizing DHCP on eth0 of Ubuntu/Debian hosts. It is advisable you build # your deployment image with the dhcp-all-interfaces element when deploying # other operating systems or if your target node has multiple ethernet # interfaces. # # NOTE(TheJulia): A user could utilize the os_ironic_facts module with another # data source such as a CSV, YAML, or JSON file formats to query ironic, and # the example role conditionals below to query current status and deploy to # nodes. --- - hosts: localhost connection: local name: "Collect facts" become: no gather_facts: yes - hosts: baremetal name: "Create configuration drive files and deploy machines from inventory" become: no connection: local roles: - { role: bifrost-configdrives-dynamic, when: provision_state == "available" and maintenance | bool != true } - { role: bifrost-deploy-nodes-dynamic, when: provision_state == "available" and maintenance | bool != true }