Skip to content

Instantly share code, notes, and snippets.

@mrlesmithjr
Last active September 14, 2017 10:50
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save mrlesmithjr/975dfefe3367345d6ca8 to your computer and use it in GitHub Desktop.
Save mrlesmithjr/975dfefe3367345d6ca8 to your computer and use it in GitHub Desktop.
---
- name: create some vms
hosts: localhost
connection: local
vars_prompt:
- name: "vcenter_host"
prompt: "Enter vcenter host"
private: no
default: "vcsa"
- name: "vcenter_user"
prompt: "Enter vcenter username"
private: no
- name: "vcenter_pass"
prompt: "Enter vcenter password"
private: yes
vars:
esxi_host: 'esxi01.{{ pri_domain_name }}'
vcenter_datacenter: 'LAB'
vcenter_datastore: 'Tier-3 (NAS01)'
vcenter_folder: 'ansible-builds'
vms:
- guest: 'test01'
state: 'powered_on'
vcpu_hotadd: 'no'
mem_hotadd: 'no'
notes: 'Ansible Created'
num_disks: 1
disks:
disk1:
size: 10
type: 'thin'
network: 'vSS-Green-Servers-VLAN101'
memory: 1024
cpus: 1
osid: 'ubuntu64Guest'
- guest: 'test02'
state: 'powered_on'
vcpu_hotadd: 'no'
mem_hotadd: 'no'
notes: 'Ansible Created'
num_disks: 2
disks:
disk1:
size: 10
type: 'thin'
disk2:
size: 20
type: 'thin'
network: 'vSS-Green-Servers-VLAN101'
memory: 1024
cpus: 1
osid: 'ubuntu64Guest'
- guest: 'test03'
state: 'powered_on'
vcpu_hotadd: 'no'
mem_hotadd: 'no'
notes: 'Ansible Created'
num_disks: 3
disks:
disk1:
size: 10
type: 'thin'
disk2:
size: 20
type: 'thin'
disk3:
size: 30
type: 'thin'
network: 'vSS-Green-Servers-VLAN101'
memory: 1024
cpus: 1
osid: 'ubuntu64Guest'
pri_domain_name: 'everythingshouldbevirtual.local'
tasks:
- name: create vms (Single Disk)
vsphere_guest:
vcenter_hostname: "{{ vcenter_host }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
guest: "{{ item['guest'] }}"
state: "{{ item['state'] }}"
vm_extra_config:
vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
notes: "{{ item['notes']|default(omit) }}"
folder: "{{ vcenter_folder }}"
vm_disk:
disk1:
size_gb: "{{ item['disks']['disk1']['size'] }}"
type: "{{ item['disks']['disk1']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
vm_nic:
nic1:
type: "vmxnet3"
network: "{{ item['network'] }}"
network_type: "standard"
vm_hardware:
memory_mb: "{{ item['memory'] }}"
num_cpus: "{{ item['cpus'] }}"
osid: "{{ item['osid'] }}"
scsi: "paravirtual"
esxi:
datacenter: "{{ vcenter_datacenter }}"
hostname: "{{ esxi_host }}"
with_items: vms
when: item['num_disks'] == 1
- name: create vms (Multi Disk - 2 Disks)
vsphere_guest:
vcenter_hostname: "{{ vcenter_host }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
guest: "{{ item['guest'] }}"
state: "{{ item['state'] }}"
vm_extra_config:
vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
notes: "{{ item['notes']|default(omit) }}"
folder: "{{ vcenter_folder }}"
vm_disk:
disk1:
size_gb: "{{ item['disks']['disk1']['size'] }}"
type: "{{ item['disks']['disk1']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
disk2:
size_gb: "{{ item['disks']['disk2']['size'] }}"
type: "{{ item['disks']['disk2']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
vm_nic:
nic1:
type: "vmxnet3"
network: "{{ item['network'] }}"
network_type: "standard"
vm_hardware:
memory_mb: "{{ item['memory'] }}"
num_cpus: "{{ item['cpus'] }}"
osid: "{{ item['osid'] }}"
scsi: "paravirtual"
esxi:
datacenter: "{{ vcenter_datacenter }}"
hostname: "{{ esxi_host }}"
with_items: vms
when: item['num_disks'] == 2
- name: create vms (Multi Disk - 3 DIsks)
vsphere_guest:
vcenter_hostname: "{{ vcenter_host }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
guest: "{{ item['guest'] }}"
state: "{{ item['state'] }}"
vm_extra_config:
vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
notes: "{{ item['notes']|default(omit) }}"
folder: "{{ vcenter_folder }}"
vm_disk:
disk1:
size_gb: "{{ item['disks']['disk1']['size'] }}"
type: "{{ item['disks']['disk1']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
disk2:
size_gb: "{{ item['disks']['disk2']['size'] }}"
type: "{{ item['disks']['disk2']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
disk3:
size_gb: "{{ item['disks']['disk3']['size'] }}"
type: "{{ item['disks']['disk3']['type'] }}"
datastore: "{{ vcenter_datastore }}"
folder: "{{ vcenter_folder }}"
vm_nic:
nic1:
type: "vmxnet3"
network: "{{ item['network'] }}"
network_type: "standard"
vm_hardware:
memory_mb: "{{ item['memory'] }}"
num_cpus: "{{ item['cpus'] }}"
osid: "{{ item['osid'] }}"
scsi: "paravirtual"
esxi:
datacenter: "{{ vcenter_datacenter }}"
hostname: "{{ esxi_host }}"
with_items: vms
when: item['num_disks'] == 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment