-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy_controller_from_cl.yml
More file actions
140 lines (123 loc) · 5.24 KB
/
Copy pathdeploy_controller_from_cl.yml
File metadata and controls
140 lines (123 loc) · 5.24 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
- name: "Deploy Controller in vCenter from Content Library"
hosts: "localhost"
connection: "local"
vars_files:
- "deployment_settings_cl.yml"
- '{{ "site_" + deployment_site + ".yml" }}'
tasks:
- name: "Deploy Avi Controller VM"
community.vmware.vmware_content_deploy_ovf_template:
hostname: "{{ cloud_parameters.vcenter }}"
username: "{{ cloud_parameters.username }}"
password: "{{ cloud_parameters.password }}"
datacenter: "{{ cloud_parameters.datacenter }}"
cluster: "{{ cloud_parameters.cluster }}"
datastore: "{{ cloud_parameters.datastore }}"
name: "{{ controller_nodes[0].name }}"
ovf_template: '{{ template_name }}'
storage_provisioning: "thin"
validate_certs: "no"
folder: '{{ cloud_parameters.datacenter + "/vm/" + cloud_parameters.controller_folder }}'
register: deploy_result
ignore_errors: true
failed_when: deploy_result.vm_deploy_info.vm_id is not defined
- name: "Retrieve deployed VM info"
community.vmware.vmware_guest_info:
hostname: "{{ cloud_parameters.vcenter }}"
username: "{{ cloud_parameters.username }}"
password: "{{ cloud_parameters.password }}"
datacenter: "{{ cloud_parameters.datacenter }}"
moid: "{{ deploy_result.vm_deploy_info.vm_id }}"
validate_certs: "no"
register: controller_vm
- name: "Check VM is not already powered on"
ansible.builtin.fail:
msg: "The Controller VM is powered on so aborting reconfiguration"
when: controller_vm.instance.hw_power_status != "poweredOff"
- name: "Reconfigure Controller VM"
community.vmware.vmware_guest:
hostname: "{{ cloud_parameters.vcenter }}"
username: "{{ cloud_parameters.username }}"
password: "{{ cloud_parameters.password }}"
uuid: "{{ controller_vm.instance.instance_uuid }}"
use_instance_uuid: true
state: "present"
cluster: "{{ cloud_parameters.cluster }}"
hardware:
num_cpus: "{{ controller_num_cpu }}"
memory_mb: "{{ controller_mem * 1024 }}"
disk:
- size_gb: "{{ controller_disk }}"
vapp_properties:
- id: "avi.mgmt-ip.CONTROLLER"
value: "{{ controller_nodes[0].ip.addr }}"
- id: "avi.mgmt-mask.CONTROLLER"
value: "{{ controller_mask }}"
- id: "avi.default-gw.CONTROLLER"
value: "{{ controller_gw }}"
validate_certs: "no"
- name: "Reconfigure Controller Networking"
community.vmware.vmware_guest_network:
hostname: "{{ cloud_parameters.vcenter }}"
username: "{{ cloud_parameters.username }}"
password: "{{ cloud_parameters.password }}"
uuid: "{{ controller_vm.instance.instance_uuid }}"
use_instance_uuid: true
state: "present"
name: "Management"
mac_address: "{{ controller_vm.instance.hw_eth0.macaddress }}"
network_name: "{{ cloud_parameters.controller_network }}"
validate_certs: "no"
- name: "Power on Controller vm"
community.vmware.vmware_guest_powerstate:
hostname: "{{ cloud_parameters.vcenter }}"
username: "{{ cloud_parameters.username }}"
password: "{{ cloud_parameters.password }}"
uuid: "{{ controller_vm.instance.instance_uuid }}"
use_instance_uuid: true
state: "powered-on"
validate_certs: "no"
- name: "Wait for Controller to be up"
ansible.builtin.uri:
url: '{{ "https://" + controller_nodes[0].ip.addr + "/api/cluster/runtime" }}'
return_content: "yes"
validate_certs: "no"
delegate_to: "localhost"
register: result
until: "result.content.find('CLUSTER_UP') != -1"
retries: 20
delay: 30
- name: "Bootstrap"
ansible.builtin.import_playbook: bootstrap.yml
when: no_bootstrap is undefined
- name: "Configure Cluster"
ansible.builtin.import_playbook: configure_cluster.yml
when: no_bootstrap is undefined
- name: "Configure System Settings"
ansible.builtin.import_playbook: configure_system_settings.yml
when: no_bootstrap is undefined
- name: "Configure License"
ansible.builtin.import_playbook: configure_license.yml
when: no_bootstrap is undefined
- name: "Configure SSL Certificates"
ansible.builtin.import_playbook: configure_sslcerts.yml
when: no_bootstrap is undefined
- name: "Configure Portal Certificate"
ansible.builtin.import_playbook: configure_portal_cert.yml
when: no_bootstrap is undefined
- name: "Configure vCenter Cloud"
ansible.builtin.import_playbook: configure_cloud.yml
when: no_bootstrap is undefined
- name: "Configure DNS Service"
ansible.builtin.import_playbook: configure_dns.yml
when: no_bootstrap is undefined
- name: "Create Profiles"
ansible.builtin.import_playbook: create_profiles.yml
when: no_bootstrap is undefined
- name: "Create Virtual Service"
ansible.builtin.import_playbook: create_vs.yml
when: no_bootstrap is undefined
- name: "GSLB Service Account Creation"
ansible.builtin.import_playbook: create_gslb_account.yml
when: no_bootstrap is undefined and gslb_member is defined