bifrost/enroll/enroll.yaml
Julia Kreger 25d63963c1 Rename of os_baremetal module to os_ironic and update deps
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.
2015-02-27 09:18:47 -05:00

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 }}