25d63963c1
Updated os_baremetal library name to os_ironic per discussions amongst the team working to develop the module. Updated the dependency librarys based on updates due to reviews.
56 lines
2.2 KiB
YAML
56 lines
2.2 KiB
YAML
---
|
|
- hosts: localhost
|
|
connection: local
|
|
name: "Enroll hardware from baremetal.csv into Ironic"
|
|
sudo: yes
|
|
gather_facts: yes
|
|
# Todo: Rip vars out, refactor.
|
|
tasks:
|
|
- name: "Error if variable baremetal_csv_file is not defined"
|
|
local_action: fail msg="baremetal_csv_file must be defined for this playbook to execute, please pass option '-e baremetal_csv_file=<path/to/file>'"
|
|
when: baremetal_csv_file is not defined
|
|
- name: "Validate that CSV file exists"
|
|
local_action: stat path={{ baremetal_csv_file }}
|
|
register: test_baremetal_csv_file
|
|
- name: "Error if file does not exist."
|
|
local_action: fail msg="The variable defined for baremetal_csv_file is not to a file. Please define a file and try again."
|
|
when: test_baremetal_csv_file.stat.isreg == false
|
|
- name: "Enroll Hardware"
|
|
# The variable definitions below seem far from ideal, however there
|
|
# seems to be no better way to handle CSV files for looping at this time.
|
|
#
|
|
# Ideally with_lines would be used with an include, however that support was removed in
|
|
# Ansible 1.6 and no direct replacement exists.
|
|
#
|
|
# mac_address: "{{item.split(',')[1]}}"
|
|
# username: "{{item.split(',')[2]}}"
|
|
# password: "{{item.split(',')[3]}}"
|
|
# management_address: "{{item.split(',')[4]}}"
|
|
# cpu_cores: "{{item.split(',')[5]}}"
|
|
# memory_MB: "{{item.split(',')[6]}}"
|
|
# disk_MB: "{{item.split(',')[7]}}"
|
|
os_ironic:
|
|
auth_plugin: None
|
|
auth: None
|
|
ironic_url: "{{ ironic_url }}"
|
|
driver: "pxe_ipmitool"
|
|
# UUID determination TBD for mass enrollment.
|
|
uuid: "{{item.split(',')[9]}}"
|
|
state: present
|
|
nics:
|
|
- mac: "{{item.split(',')[0]}}"
|
|
properties:
|
|
cpus: "{{item.split(',')[4]}}"
|
|
cpu_arch: "x86_64"
|
|
ram: "{{item.split(',')[5]}}"
|
|
disk_size: "{{item.split(',')[6]}}"
|
|
driver_info:
|
|
power:
|
|
ipmi_address: "{{item.split(',')[3]}}"
|
|
ipmi_username: "{{item.split(',')[1]}}"
|
|
ipmi_password: "{{item.split(',')[2]}}"
|
|
delegate_to: localhost
|
|
with_lines:
|
|
- cat {{ baremetal_csv_file }}
|
|
|