blob: ebee13078e95483bd23b72438dbcfad5f5ffabe1 [file] [log] [blame]
---
# ============LICENSE_START=======================================================
# Copyright (C) 2019 The Nordix Foundation. All rights reserved.
# ================================================================================
# 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
- include_tasks: cleanup-bifrost.yml
- name: Clone bifrost repository and checkout '{{ bifrost_version }}'
git:
repo: "{{ bifrost_git_url }}"
dest: "{{ engine_cache }}/repos/bifrost"
version: "{{ bifrost_version }}"
force: true
environment:
http_proxy: "{{ lookup('env','http_proxy') }}"
https_proxy: "{{ lookup('env','https_proxy') }}"
no_proxy: "{{ lookup('env','no_proxy') }}"
when: execution_mode == 'online-deployment'
- name: Install bifrost requirements
pip:
requirements: "{{ engine_cache }}/repos/bifrost/requirements.txt"
extra_args: --upgrade
virtualenv: "{{ engine_venv }}"
- name: Process PDF and IDF
set_fact:
num_nodes: "{{ nodes | length }}"
hosts: "{{ idf[installer_type].hostnames }}"
host_roles: "{{ idf[installer_type].nodes_roles }}"
bifrost_inventory: {}
- name: Create DHCP hosts directory
file:
path: "/etc/dnsmasq.d/bifrost.dhcp-hosts.d"
state: directory
owner: "root"
group: "root"
mode: 0755
become: true
- include_tasks: create-bifrost-inventory-entry.yml
with_dict: "{{ hosts }}"
loop_control:
loop_var: host
- include_tasks: create-bifrost-inventory-file.yml
- include_tasks: create-bifrost-playbooks.yml
- include_tasks: configure-bifrost-offline.yml
when: execution_mode == 'offline-deployment'
# TODO (fdegir): this task is really messy but at least it gives us an
# idea about what needs to be done for Ansible 2.9. Here are the details
# - bootstrap.yml: Jinja2 ipaddr filter behaves differently on 2.9 and it could be a bug
# in Ansible itself. The file we use works in both 2.7 and 2.9 but I am
# not so sure about if this is the problem. This is not proposed to upstream
# yet.
- name: Overwrite bifrost-ironic-install role for Ansible 2.9
copy:
src: "bootstrap.yml"
dest: "{{ engine_cache }}/repos/bifrost/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml"
force: true
- name: Create folder to override Bifrost dependencies
file:
path: "{{ engine_cache }}/repos/bifrost/playbooks/roles/bifrost-prep-for-install/vars"
state: "{{ item }}"
with_items:
- absent
- directory
- name: Create Bifrost dependencies file to set git repos and pinned versions
template:
src: "bifrost-dependencies.yaml.j2"
dest: "{{ engine_cache }}/repos/bifrost/playbooks/roles/bifrost-prep-for-install/vars/main.yml"
- name: Create folders to put ipa and deployment images
file:
path: "{{ item }}"
state: directory
owner: root
group: root
mode: 0755
with_items:
- /httpboot
- /tftpboot
become: true
# we want users to use prebuilt ipa images but not deployment images
# as the deployment images contain ssh public key of the user so we
# download ipa images by default and not the deployment image
- include_tasks: download-image.yml
with_items:
- {source: "{{ deployment_image }}", destination: "/httpboot/deployment_image.qcow2", download: "{{ use_prebuilt_deployment_image }}"}
- {source: "{{ ipa_initramfs }}", destination: "/httpboot/ipa.initramfs", download: "true"}
- {source: "{{ ipa_kernel }}", destination: "/httpboot/ipa.kernel", download: "true"}
when: execution_mode == 'online-deployment'
# vim: set ts=2 sw=2 expandtab: