0e05496f6e
There is a bug in the inspection module, which needs to be corrected, although that is going to take potentially a substantial amount of time given ansible's release cycle. In the mean time, we're just going to have to work around it until we're able to get the fix landed in ansible. Change-Id: I70fc4b54c6cd815bdb755819ad28215714c71260
89 lines
3.2 KiB
YAML
89 lines
3.2 KiB
YAML
# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
|
|
#
|
|
# 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: "Collect facts"
|
|
setup:
|
|
|
|
- name: "If in noauth mode, unset authentication parameters."
|
|
set_fact:
|
|
auth_type: None
|
|
auth: {}
|
|
when: noauth_mode is defined and noauth_mode | bool == true
|
|
|
|
- name: "Execute os_client_config to collect facts"
|
|
os_client_config:
|
|
no_log: yes
|
|
when: noauth_mode is defined and noauth_mode | bool == false
|
|
|
|
# NOTE(TheJulia): The first record returned by os_client_config
|
|
# is utilized as the default. A user can still define the parameters
|
|
# if so desired.
|
|
- name: "Set os_client_config's auth parameters if not already set."
|
|
set_fact:
|
|
auth: "{{ openstack.clouds[0].auth }}"
|
|
auth_type: "{{ openstack.clouds[0].auth_type }}"
|
|
when: auth is undefined
|
|
no_log: yes
|
|
|
|
- name: "Setup DHCP for nodes."
|
|
template:
|
|
src: dhcp-host.j2
|
|
dest: "/etc/dnsmasq.d/bifrost.dhcp-hosts.d/{{ inventory_hostname }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
when: inventory_dhcp | bool == true
|
|
become: yes
|
|
- name: "Setup DNS address for nodes."
|
|
template:
|
|
src: dns-address.j2
|
|
dest: "/etc/dnsmasq.d/host_record_{{ inventory_hostname }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
when: inventory_dns | bool == true
|
|
become: yes
|
|
- name: "Sending dnsmasq HUP"
|
|
# Note(TheJulia): We need to actually to send a hup signal directly as
|
|
# Ansible's reloaded state does not pass through to the init script.
|
|
command: killall -HUP dnsmasq
|
|
become: yes
|
|
when: (inventory_dhcp | bool == true) or (inventory_dns | bool == true)
|
|
|
|
- name: "Execute node introspection - noauth_mode"
|
|
os_ironic_inspect:
|
|
cloud: "{{ cloud_name | default(omit) }}"
|
|
auth_type: "{{ auth_type | default(omit) }}"
|
|
auth: "{{ auth | default(omit) }}"
|
|
ironic_url: "{{ ironic_url | default(omit) }}"
|
|
uuid: "{{ uuid | default('') }}"
|
|
name: "{{ name | default('') }}"
|
|
timeout: "{{ inspection_wait_timeout }}"
|
|
when: noauth_mode is not defined or noauth_mode | bool == True
|
|
|
|
# NOTE(TheJulia): Some behavior appears to have changed in ansible at
|
|
# some point where arguments are passed that are part of the spec for,
|
|
# which raises a bug in the inspection module where auth_type must be
|
|
# defined, as it is otherwise always sent as a null value.
|
|
- name: "Execute node introspection"
|
|
os_ironic_inspect:
|
|
cloud: "{{ cloud_name | default(omit) }}"
|
|
auth_type: "{{ auth_type | default('password') }}"
|
|
auth: "{{ auth | default(omit) }}"
|
|
ironic_url: "{{ ironic_url | default(omit) }}"
|
|
uuid: "{{ uuid | default('') }}"
|
|
name: "{{ name | default('') }}"
|
|
timeout: "{{ inspection_wait_timeout }}"
|
|
when: noauth_mode is defined and noauth_mode | bool == False
|