forked from billfitzgerald0120/ansible_playbooks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
deploy-cfme-vcenter.yml
161 lines (141 loc) · 5.58 KB
/
deploy-cfme-vcenter.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
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
---
- hosts: localhost
vars:
ansible_python_interpreter: "{{ '/usr/libexec/platform-python' if ystream != '5.8' else '/usr/bin/python'}}"
tasks:
- name: Locating file
find:
paths: "/builds/cfme/{{ ystream }}/{{ version }}/"
patterns: "{{ cfme_vsphere }}{{ version }}*.vsphere.ova"
register: ova_image
- name: Deploying OVA File
vmware_deploy_ovf:
hostname: '{{ myhost }}'
username: '{{ lookup("env", "VMWARE_USER") }}'
password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
cluster: dev-vc67-cluster
datacenter: dev-vc67-DC
datastore: NFS Share
ovf: "{{ item.path }}"
allow_duplicates: no
validate_certs: no
name: '{{ newvm }}'
power_on: no
with_items: "{{ ova_image.files }}"
delegate_to: localhost
- name: Adding DB disk to appliance
vmware_guest_disk:
hostname: '{{ myhost }}'
username: '{{ lookup("env", "VMWARE_USER") }}'
password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
datacenter: dev-vc67-DC
name: '{{ newvm }}'
validate_certs: no
disk:
- size_gb: 100
state: present
scsi_controller: 2
unit_number: 1
type: thin
datastore: NFS Share
- name: Adjusting memory size
vmware_guest:
hostname: '{{ myhost }}'
username: '{{ lookup("env", "VMWARE_USER") }}'
password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
validate_certs: no
name: '{{ newvm }}'
hardware:
memory_mb: "{{ memorySize }}"
delegate_to: localhost
- name: Powering on appliance
vmware_guest:
hostname: '{{ myhost }}'
username: '{{ lookup("env", "VMWARE_USER") }}'
password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
validate_certs: no
name: '{{ newvm }}'
state: poweredon
wait_for_ip_address: True
delegate_to: localhost
register: deployInfo
- pause:
minutes: 5
- name: Gathering facts of appliance
setup:
register: moreInfo
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
- name: Figure out which is the DB Disk
set_fact:
db_disk: "{{ item.key }}"
with_dict: "{{ ansible_devices }}"
when: item.value.size == '100.00 GB'
- name: Setting up DB on '{{ db_disk }}'
shell: appliance_console_cli --internal --dbdisk /dev/"{{ db_disk }}" --region 0 --password "{{ cfme_password }}"
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: ystream != '5.10'
# - name: Setting up DB on vda
# shell: appliance_console_cli --internal --dbdisk /dev/vda --region 0 --password "{{ cfme_password }}"
# delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
# when: moreInfo.ansible_facts.ansible_devices.vdb.size != '100.00 GB' and ystream != '5.10'
# ignore_errors: True
- name: Setting up DB on '{{ db_disk }} (for 5.10)
shell: appliance_console_cli --internal --dbdisk /dev/"{{ db_disk }}" --region 10 --password "{{ cfme_password }}"
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: ystream == '5.10'
# - name: Setting up DB on vda (for 5.10)
# shell: appliance_console_cli --internal --dbdisk /dev/vda --region 10 --password "{{ cfme_password }}"
# delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
# when: moreInfo.ansible_facts.ansible_devices.sdb.size != '100.00 GB' and ystream == '5.10'
# ignore_errors: True
- name: Copy DB Import Script (for 5.9)
copy:
src: /cfmt/importdb46.sh
dest: /tmp/importdb.sh
mode: u+x
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: setup_DB == 'true' and ystream == '5.9'
- name: Copy DB Import Script (for 5.10)
copy:
src: /cfmt/importdb47.sh
dest: /tmp/importdb.sh
mode: u+x
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: setup_DB == 'true' and ystream == '5.10'
- name: Run DB Import Script
shell: /tmp/importdb.sh
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: setup_DB == 'true'
- name: Starting EVM service manually
shell: systemctl start evmserverd.service
delegate_to: '{{ deployInfo.instance.hw_eth0.ipaddresses[0] }}'
when: setup_DB != 'true'
- debug:
msg: "You should now be able to access your appliance via https://{{ deployInfo.instance.hw_eth0.ipaddresses[0] }} Please allow roughly 15 minutes for the service to fully come online."
- name: Build body for Cloudforms
set_fact:
payload:
action: add_provider_vms
resource:
provider:
href: "{{ manageiq.api_url }}/api/{{ provider_href_slug }}"
uid_ems:
- "{{ deployInfo.instance.hw_product_uuid }}"
- debug: msg="payload = {{ payload }}"
- name: Register Vm with Cloudforms
uri:
url: "{{ manageiq.api_url }}/api/{{ manageiq.service }}"
method: POST
body: "{{ payload }}"
body_format: json
validate_certs: False
user: "{{ cfme_userid }}"
password: "{{ cfme_password }}"
headers:
Content-Type: "application/json"
status_code: 200
register: output
- debug: var=output.json.success
- name: Check if the VM was successfully attached to service
fail: msg="{{ output.json.message }}"
when: output.json.success == false