Skip to content

Instantly share code, notes, and snippets.

@AnthonyWC
Forked from mrlesmithjr/create_vms.yml
Created February 22, 2016 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AnthonyWC/16c73fee8c00e597edfb to your computer and use it in GitHub Desktop.
Save AnthonyWC/16c73fee8c00e597edfb 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