--- # Copyright 2019 Red Hat, Inc. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - name: Baremetal Configure - set the boot and root devices for ironic nodes connection: "{{ (tripleo_target_host is defined) | ternary('ssh', 'local') }}" hosts: "{{ tripleo_target_host | default('localhost') }}" remote_user: "{{ tripleo_target_user | default(lookup('env', 'USER')) }}" gather_facts: "{{ (tripleo_target_host is defined) | ternary(true, false) }}" any_errors_fatal: true vars: tripleo_undercloud_name: undercloud kernel_name: bm-deploy-kernel ramdisk_name: bm-deploy-ramdisk root_device_minimum_size: 4 overwrite_root_device_hints: false pre_tasks: - name: Check for required inputs fail: msg: > `node_uuids` or `all_manageable` are required inputs but currently undefined. Check you inputs and try again. when: - node_uuids is undefined - all_manageable is undefined - name: Check for required inputs fail: msg: > The option `all_manageable` is "false" but `node_uuids` is undefined. Check your inputs and try again. when: - node_uuids is undefined - not (all_manageable | bool) tasks: - name: Run all manageable block block: # Get Node UUIDs, if "all_manageable" is True - name: Get node UUIDS command: > openstack baremetal node list --provision-state=manageable -c UUID -f value register: command_output changed_when: false - name: Set node_uuids fact set_fact: node_uuids: "{{ command_output.stdout_lines }}" when: - all_manageable | bool - node_uuids is undefined - name: exit if nothing to do block: - name: Notice debug: msg: No nodes are manageable at this time. - name: end play meta: end_play when: - (node_uuids | length) < 1 # Configure Nodes - name: Configure node boot os_tripleo_baremetal_configure: cloud: "{{ tripleo_undercloud_name }}" action: baremetal_configure_boot args: node_uuid: "{{ item }}" kernel_name: "{{ kernel_name }}" ramdisk_name: "{{ ramdisk_name }}" instance_boot_option: "{{ instance_boot_option | default(omit) }}" loop: "{{ node_uuids }}" - name: Configure root device os_tripleo_baremetal_configure: cloud: "{{ tripleo_undercloud_name }}" action: baremetal_configure_root_device args: node_uuid: "{{ item }}" root_device: "{{ root_device | default(omit) }}" minimum_size: "{{ root_device_minimum_size }}" overwrite: "{{ overwrite_root_device_hints }}" loop: "{{ node_uuids }}"