-
Notifications
You must be signed in to change notification settings - Fork 109
/
static_ips.yml
107 lines (95 loc) · 2.67 KB
/
static_ips.yml
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
102
103
104
105
106
107
---
- name: Initial Environment setup
hosts: localhost
gather_facts: True
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
tasks:
- name: Initial setup and checks
import_role:
name: setup
tags:
- always
- name: Set the cache of all the download links
import_role:
name: cache
tags:
- always
- name: Run all the common tasks
import_role:
name: common
tags:
- always
- name: F5 setup
hosts: f5
gather_facts: false
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
tasks:
- name: Include the cluster vars
ansible.builtin.include_vars: "{{ clusters_folder }}/{{ cluster }}.yaml"
- name: Configure F5
ansible.builtin.import_role:
name: f5
when: f5.enabled | default(false)
- name: Setup webserver
hosts: webservers
gather_facts: False
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
tasks:
- name: Set required facts
set_fact:
download: "{{ hostvars[groups['all'].0].download }}"
config: "{{ hostvars[groups['all'].0].config }}"
when:
- config is not defined
- download is not defined
- inventory_hostname != "localhost"
- name: Create webserver paths for the cluster
import_role:
name: webserver
tasks_from: create_cluster_dir
- name: Copy over generated ignition files to webserver
import_role:
name: webserver
tasks_from: copy_ign_files
- name: Download the installer raw.gz file to webserver
import_role:
name: webserver
tasks_from: download_raw_installer_files
- name: Create VMs and install
hosts: localhost
gather_facts: False
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
tasks:
- name: Generate isos for all nodes
import_role:
name: node_isos
when: skip_iso is not defined
- name: Create, Configure and boot the VMs
environment:
GOVC_USERNAME: "{{ vcenter.username }}"
GOVC_PASSWORD: "{{ vcenter.password }}"
GOVC_URL: "https://{{ vcenter.ip }}"
GOVC_DATACENTER: "{{ vcenter.datacenter }}"
GOVC_INSECURE: 1
vars:
iso: true
skip_ova: true
import_role:
name: vsphere_vm
- name: Run steps to finish cluster install
import_role:
name: finish_install
- name: F5 Cleanup
hosts: localhost
gather_facts: false
tasks:
- name: Remove bootstrap server from API VIP on f5
ansible.builtin.import_role:
name: f5
vars:
bootstrap_finished: true
when: f5.enabled | default(false)