6c59da3daf
virtualenv is not a part of the core python installation, but venv is. Let's use it to be slimmer and avoid issues with virtualenv installation. At the same time, remove some existing hacks around selinux, systemd, PyYAML and libvirt. Change-Id: Icd60aca084323cede944ee261d2cf5941b320e4b
55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
---
|
|
- name: Load current Tenks state
|
|
hosts: localhost
|
|
tags:
|
|
- node-bmc
|
|
tasks:
|
|
- name: Load state from file
|
|
include_vars:
|
|
file: "{{ state_file_path }}"
|
|
name: tenks_state
|
|
|
|
- name: Perform Virtual BMC configuration
|
|
hosts: libvirt
|
|
tags:
|
|
- node-bmc
|
|
vars:
|
|
# List of ironic drivers that require virtualbmc.
|
|
vbmc_drivers: >-
|
|
{{ bmc_emulators.items() |
|
|
selectattr('1', 'eq', 'virtualbmc') |
|
|
map(attribute='0') |
|
|
list }}
|
|
# List of ironic nodes using drivers that require virtualbmc.
|
|
vbmc_nodes: >-
|
|
{{ hostvars.localhost.tenks_state[inventory_hostname].nodes |
|
|
default([]) |
|
|
selectattr('ironic_driver', 'in', vbmc_drivers) |
|
|
list }}
|
|
tasks:
|
|
- name: Check that enough ports are available for Virtual BMC
|
|
fail:
|
|
msg: >
|
|
{{ vbmc_nodes | count }} nodes were specified to be added to Virtual
|
|
BMC, but only {{ ipmi_port_range_end - ipmi_port_range_start }} ports
|
|
are available for use by Virtual BMC.
|
|
when: >-
|
|
(vbmc_nodes | count) > (ipmi_port_range_end - ipmi_port_range_start)
|
|
|
|
- name: Register domains with Virtual BMC
|
|
include_role:
|
|
name: virtualbmc-domain
|
|
vars:
|
|
vbmc_domain: "{{ domain.name }}"
|
|
vbmc_libvirt_uri: "{{ libvirt_local_uri }}"
|
|
vbmc_ipmi_address: "{{ ipmi_address }}"
|
|
vbmc_ipmi_username: "{{ ipmi_username }}"
|
|
vbmc_ipmi_password: "{{ ipmi_password }}"
|
|
vbmc_ipmi_port: "{{ domain.ipmi_port }}"
|
|
vbmc_virtualenv_path: "{{ virtualenv_path }}"
|
|
vbmc_log_directory: "{{ log_directory }}"
|
|
vbmc_state: "{{ domain.get('state', 'present') }}"
|
|
loop: "{{ vbmc_nodes | sort(attribute='name') | list }}"
|
|
loop_control:
|
|
loop_var: domain
|