/
snow-vcenter-create-vm.yml
88 lines (82 loc) · 2.6 KB
/
snow-vcenter-create-vm.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
---
- name: provision vcenter templates via snow
hosts: localhost
gather_facts: false
vars:
# nios_provider:
# host: 1.2.3.4
# username: MyDDIusername
# password: MyDDIpassword
# vcenter variables should be passed in at run time. I'm using a custom credential in tower.
# vcenter_hostname: 10.1.2.3
# vcenter_username: myUsername
# vcenter_password: wrongpassword
# below are all of the details for the VM. I'm overriding these at runtime.
vm_datacenter: MNS
vm_name: snowtest2
# vm_template: Windows2016
vm_template: Rocky8.6
# vm_template: Rocky8
# vm_template: Rocky9
vm_folder: /Greg/ciq
vm_disksize: 50
vm_datastore: SSD
# minimum of 4GB of RAM
vm_memory: 4096
vm_cpus: 4
vm_netname: Greg
vm_ip: 10.1.12.56
vm_netmask: 255.255.255.0
vm_gateway: 10.1.12.1
tasks:
- name: set creds from custom credential when supplied
# when: gen1_pword is defined
no_log: true
ansible.builtin.set_fact:
vcenter_username: "{{ gen1_user }}"
vcenter_password: "{{ gen1_pword }}"
- name: connect to vcenter and do a basic provisioning
when: vm_ip != "ddi"
block:
- name: connect to vcenter and do a basic provisioning
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
folder: "{{ vm_folder }}"
name: "{{ vm_name }}"
datacenter: "{{ vm_datacenter }}"
state: poweredon
# guest_id: centos64Guest
template: "{{ vm_template }}"
# This is hostname of particular ESXi server on which user wants VM to be deployed
disk:
- size_gb: "{{ vm_disksize }}"
type: thin
datastore: "{{ vm_datastore }}"
hardware:
memory_mb: "{{ vm_memory }}"
num_cpus: "{{ vm_cpus}}"
scsi: paravirtual
networks:
- name: "{{ vm_netname}}"
connected: true
start_connected: true
type: static
# mac: aa:bb:dd:aa:00:14
ip: "{{ vm_ip }}"
netmask: "{{ vm_netmask }}"
gateway: "{{ vm_gateway }}"
dns_servers: "{{ vm_gateway }}"
wait_for_ip_address: true
# device_type: vmxnet3
# delegate_to: localhost
register: deploy_vm
- name: set IP as stat for workflow
ansible.builtin.set_stats:
data:
net_host: "{{ vm_ip }}"
- name: debug results
ansible.builtin.debug:
var: deploy_vm