# 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: "Interface name fact" set_fact: provisioning_itf_name: "{{ ('ansible_' ~ network_interface) | regex_replace('-', '_') }}" - name: "Fail if the network interface does not exist" fail: msg: > The configured network interface {{ network_interface }} does not exist when: provisioning_itf_name not in hostvars[inventory_hostname] - name: "Fail if the network interface has no IP address assigned" fail: msg: > The configured network interface {{ network_interface }} does not have an IP address assigned when: not hostvars[inventory_hostname][provisioning_itf_name].get('ipv4', {}).get('address') - name: "Configure hardware interfaces" import_tasks: hw_types.yml - name: "Locate ISOLINUX binary" set_fact: isolinux_bin_path: "{{ item }}" with_first_found: - /usr/lib/ISOLINUX/isolinux.bin - /usr/share/syslinux/isolinux.bin - name: "Create ironic config" template: src="ironic.conf.j2" dest=/etc/ironic/ironic.conf owner=ironic group=ironic mode=0640 - name: "Symlinks from venv" file: state: link path: "{{ ironic_rootwrap_dir }}/{{ item | basename }}" src: "{{ item }}" owner: root group: root loop: - "{{ bifrost_venv_dir }}/bin/ironic-rootwrap" - "{{ bifrost_venv_dir }}/bin/ironic-inspector-rootwrap" - name: "Set sudoers for rootwrap" lineinfile: dest: /etc/sudoers regexp: "^ironic(.*)/{{ item }}-rootwrap /etc/{{ item }}/rootwrap.conf(.*)" line: "ironic ALL = (root) NOPASSWD: {{ ironic_rootwrap_dir }}/{{ item }}-rootwrap /etc/{{ item }}/rootwrap.conf *" loop: - ironic - ironic-inspector