Files
kayobe/ansible/compute-node-discovery.yml
Pierre Riteau 9e18a6e02a CI: Fix new failures with ansible-lint 25.6.0
Fix name[unique] check which was added in this version.

Set noqa for a inventory_hostnames query failing with an exception.

Change-Id: Iee5b63bc3f4cdf41239625ecd37301ea0d217a41
2025-06-18 12:30:34 +02:00

65 lines
2.7 KiB
YAML

---
- import_playbook: dell-compute-node-inventory.yml
- name: Ensure baremetal compute nodes are PXE booted
hosts: baremetal-compute
gather_facts: no
max_fail_percentage: >-
{{ compute_node_discovery_max_fail_percentage |
default(baremetal_compute_max_fail_percentage) |
default(kayobe_max_fail_percentage) |
default(100) }}
vars:
controller_host: "{{ groups['controllers'][0] }}"
tasks:
- name: Ensure ipmitool is installed
package:
name: ipmitool
state: present
cache_valid_time: "{{ apt_cache_valid_time if ansible_facts.os_family == 'Debian' else omit }}"
update_cache: "{{ True if ansible_facts.os_family == 'Debian' else omit }}"
become: True
run_once: True
delegate_to: "{{ controller_host }}"
vars:
# NOTE: Without this, the controller's ansible_host variable will not
# be respected when using delegate_to.
ansible_host: "{{ hostvars[controller_host].ansible_host | default(controller_host) }}"
- name: Ensure baremetal compute nodes are powered off
command: ipmitool -U {{ ipmi_username }} -P {{ ipmi_password }} -H {{ ipmi_address }} -I lanplus chassis power off
delegate_to: "{{ controller_host }}"
register: result
failed_when:
- result is failed
# Some BMCs complain if the node is already powered off.
- "'Command not supported in present state' not in result.stderr"
vars:
# NOTE: Without this, the controller's ansible_host variable will not
# be respected when using delegate_to.
ansible_host: "{{ hostvars[controller_host].ansible_host | default(controller_host) }}"
- name: Pause to prevent overwhelming BMCs
pause:
seconds: 5
- name: Ensure baremetal compute nodes are set to boot via PXE
command: ipmitool -U {{ ipmi_username }} -P {{ ipmi_password }} -H {{ ipmi_address }} -I lanplus chassis bootdev pxe
delegate_to: "{{ controller_host }}"
vars:
# NOTE: Without this, the controller's ansible_host variable will not
# be respected when using delegate_to.
ansible_host: "{{ hostvars[controller_host].ansible_host | default(controller_host) }}"
- name: Pause again to prevent overwhelming BMCs
pause:
seconds: 5
- name: Ensure baremetal compute nodes are powered on
command: ipmitool -U {{ ipmi_username }} -P {{ ipmi_password }} -H {{ ipmi_address }} -I lanplus chassis power on
delegate_to: "{{ controller_host }}"
vars:
# NOTE: Without this, the controller's ansible_host variable will not
# be respected when using delegate_to.
ansible_host: "{{ hostvars[controller_host].ansible_host | default(controller_host) }}"