Julia Kreger 15e1c3f22e Ansible 2.0 compatibility
These changes allow the various playbooks to be executed by
Ansible 1.9.x and 2.0. This was necessary as 2.0 has a number
of changes to the YAML processor, and certain ways of doing
things have naturally had to change.

- Removed pass-through variable when a role is explicitly defined
  with variables passed through to it as updated yaml parser fails
  to handle appropriately.
- Defined a default dib_packages variable of an empty string.
- Changed stray boolean compare to use an is defined check as
  the the parser in Ansible 2.0 does not equate undefined to
  false.
- Explicitly defined the testing_user for the syntax check
  as the check fails without it.
- Revised MySQL module syntax usage to be compatible between
  Ansible 1.9.x and 2.0 development branches.
- Updated some conditionals making string compares with lookups
  which is apparently problematic in Ansible 2.0.

Depends-On: I9d5fa719793896cce00a69dafba738755b45b068
Depends-On: I23e902c8637e142fba23d71467225d48ee265253
Change-Id: I4fec7f44dd9d591388f345b3f449cb44b8e50744
Closes-Bug: 1469862
2015-10-02 12:58:11 +00:00

60 lines
2.6 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.
#
# TODO: Consider converting to ansible virt module.
---
- name: "Update apt cache if Ubuntu/Debian"
apt: update_cache=yes
when: ansible_os_family == "Debian"
- name: "Load distribution defaults"
include_vars: "{{ item }}"
with_first_found:
- "../defaults/required_defaults_{{ ansible_distribution }}.yml"
- "../defaults/required_defaults_{{ ansible_os_family }}.yml"
# NOTE(cinerama): On Fedora 22, ansible 1.9, ansible_pkg_mgr
# defaults to yum, which may not be installed. This can be safely
# removed when we start using an ansible release which prefers dnf.
- name: "Check for dnf"
stat: path=/usr/bin/dnf
register: test_dnf
- name: "Adjust ansible_pkg_mgr if dnf exists"
set_fact:
ansible_pkg_mgr: "dnf"
when: ansible_distribution == 'Fedora' and "{{ test_dnf.stat.exists|bool }}"
- name: "Install required packages"
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
with_items: required_packages
- name: "Restart libvirt service"
service: name="{{libvirt_service_name}}" state=restarted
- name: "Create virtual machines"
script: create_vm_nodes-for-role.sh
environment:
NODEOUTPUT: "{{baremetal_csv_file}}"
VM_RAM: "{{ test_vm_memory_size }}"
register: task_create_vm_nodes
ignore_errors: yes
delegate_to: localhost
- name: "Execute `dmesg` to collect debugging output should VM creation fail."
command: dmesg
when: task_create_vm_nodes.rc != 0
- name: "Execute `virsh capabilities` to collect debugging output should VM creation fail."
command: virsh capabilities
when: task_create_vm_nodes.rc != 0
- name: "Abort due to failed VM creation"
fail: msg="VM creation step failed, please review dmesg output for additional details"
when: task_create_vm_nodes.rc != 0
- name: "Set file permissions such that the baremetal csv file at /tmp/baremetal.csv can be read by the user executing Ansible"
file: path="{{baremetal_csv_file}}" owner="{{ansible_env.SUDO_USER}}"
when: ansible_env.SUDO_USER is defined and baremetal_csv_file is defined and baremetal_csv_file != ""