-
Notifications
You must be signed in to change notification settings - Fork 108
/
dhcp_pxe.yml
89 lines (80 loc) · 2.28 KB
/
dhcp_pxe.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
---
- name: Initial Environment setup
hosts: localhost
gather_facts: True
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
- hosts: localhost
gather_facts: True
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
tasks:
- name: Run all the common tasks
import_role:
name: common
- name: Configure F5
ansible.builtin.import_role:
name: f5
when: f5.enabled | default(false)
- 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: Copy over generated ignition files to webserver
import_role:
name: webserver
tasks_from: copy_ign_files
- name: Download Openshift installer files needed for PXE boot
import_role:
name: webserver
tasks_from: download_pxe_installer_files
- hosts: localhost
gather_facts: False
environment:
PATH: "{{ playbook_dir }}/bin:{{ ansible_env.PATH }}"
GOVC_USERNAME: "{{ vcenter.username }}"
GOVC_PASSWORD: "{{ vcenter.password }}"
GOVC_URL: "https://{{ vcenter.ip }}"
GOVC_DATACENTER: "{{ datacenter }}"
GOVC_INSECURE: 1
tasks:
- name: Create the DHCP based VMs
environment:
GOVC_USERNAME: "{{ vcenter.username }}"
GOVC_PASSWORD: "{{ vcenter.password }}"
GOVC_URL: "https://{{ vcenter.ip }}"
GOVC_DATACENTER: "{{ vcenter.datacenter }}"
GOVC_INSECURE: 1
vars:
dhcp: 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)