blob: 52e42b06550ab2009b3add460628bd37fdc6f6f1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
---
# SPDX-license-identifier: Apache-2.0
##############################################################################
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
- hosts: opnfv
remote_user: root
vars_files:
- "{{ xci_path }}/xci/var/opnfv.yml"
pre_tasks:
- name: Load distribution variables
include_vars:
file: "{{ item }}"
with_items:
- "{{ xci_path }}/xci/var/{{ ansible_os_family }}.yml"
- name: Set facts for remote deployment
set_fact:
remote_xci_path: "{{ ansible_env.HOME }}/releng-xci"
remote_xci_flavor_files: "{{ ansible_env.HOME }}/releng-xci/xci/installer/{{ installer_type }}/files/{{ xci_flavor }}"
remote_xci_playbooks: "{{ ansible_env.HOME }}/releng-xci/xci/playbooks"
roles:
- role: bootstrap-host
configure_network: xci_flavor != 'aio'
tasks:
- name: Create list of files to copy
shell: |
git ls-tree -r --name-only HEAD > {{ xci_cache }}/releng-xci.files
echo ".git/" >> {{ xci_cache }}/releng-xci.files
echo ".cache/repos/" >> {{ xci_cache }}/releng-xci.files
echo ".cache/xci.env" >> {{ xci_cache }}/releng-xci.files
args:
executable: /bin/bash
chdir: "{{ xci_path }}"
changed_when: False
delegate_to: 127.0.0.1
tags:
- skip_ansible_lint
- name: Copy releng-xci to remote host
synchronize:
archive: yes
src: "{{ xci_path }}/"
dest: "{{ remote_xci_path }}"
delete: yes
rsync_opts:
- "--recursive"
- "--files-from={{ xci_cache }}/releng-xci.files"
- name: link xci dynamic inventory to kubespray/inventory/opnfv directory
file:
src: "{{ remote_xci_playbooks }}/dynamic_inventory.py"
path: "{{ remote_xci_path }}/.cache/repos/kubespray/inventory/opnfv/dynamic_inventory.py"
state: link
- name: Download kubectl and place it to /usr/local/bin
get_url:
url: "https://storage.googleapis.com/kubernetes-release/release/{{ kubernetes_version }}/bin/linux/amd64/kubectl"
dest: /usr/local/bin/kubectl
owner: root
group: root
mode: 0755
- name: Reload XCI deployment host facts
setup:
filter: ansible_local
gather_subset: "!all"
delegate_to: 127.0.0.1
- name: Prepare everything to run the {{ deploy_scenario }} role
include_role:
name: "{{ hostvars['opnfv'].ansible_local.xci.scenarios.role }}"
- name: Install required packages
package:
name: "{{ (ansible_pkg_mgr == 'zypper') | ternary('dbus-1', 'dbus') }}"
state: present
update_cache: "{{ (ansible_pkg_mgr in ['apt', 'zypper']) | ternary('yes', omit) }}"
when: xci_flavor == 'aio'
- name: pip install required packages
pip:
name: "{{ item.name }}"
version: "{{ item.version | default(omit) }}"
with_items:
- { name: 'ansible', version: "{{ xci_kube_ansible_pip_version }}" }
- { name: 'netaddr' }
- { name: 'ansible-modules-hashivault' }
- name: fetch xci environment
copy:
src: "{{ xci_path }}/.cache/xci.env"
dest: /root/xci.env
- name: Manage SSH keys
include_tasks: "{{ xci_path }}/xci/playbooks/manage-ssh-keys.yml"
|