Hi
I have a playbook that creates multiple VM’s in VMware (see below).
When the VM’s have all been created they have the same server name as the
template. So I have 20 new VM’s all with the same OS name.
I want the OS server name to be changed to the same name as the Vm host
name that the Ansible playbook gives it when it runs. Is there any way of
doing this? It’s obviously pointless creating multiple servers all with the
same name.
I can easily do this using VMware PowerCLI and associating a VMware
Customization Spec to the VM template:
$esxName = "172.22.22.22"
$template = "WIN2012R2-TEMPLATE"
$datastore = "IE-VMFS5-32"
$newVmList = "DR-EA05", "DR-EA06"
$custSpec = "Spectest"
$location = "Alphanew"
$taskTab = @{}
# Create all the VMs specified in $newVmList
foreach($Name in $newVmList) {
$taskTab[(New-VM -Name $Name -VMHost (Get-VMHost -Name $esxName)
-Template $template -Datastore $datastore -OSCustomizationSpec $custSpec
-Location $location -RunAsync).Id] = $Name
}
Is there anyway of adding a VMware Customization spec to the Ansible
playbook? Or any other way than you can think of that I can use to set the
new VM’s server name?
Playbook:
---
- hosts: 127.0.0.1
connection: local
user: root
sudo: false
gather_facts: false
serial: 1
vars:
vcenter_hostname: UK-VC01.company.local
esxhost: 172.22.22.22
datastore: UK-ESX36
username: markm
password: 11111111111
vmtemplate: WIN2K12R2-TEMPLATE
network: Web Servers
vmcluster: UK-CLUSTER
folder: Utilities
notes: Created by Ansible
tasks:
- name: Create VM from template
vsphere_guest:
vcenter_hostname: "{{ vcenter_hostname }}"
username: "{{ username }}"
password: "{{ password }}"
guest: "{{ item }}"
vm_extra_config:
notes: "{{ notes }}"
folder: "{{ folder }}"
from_template: yes
template_src: "{{ vmtemplate }}"
cluster: "{{ vmcluster }}"
resource_pool: "/Resources"
esxi:
datacenter: UK
hostname: "{{ esxhost }}"
with_items:
- ans_testserver01
- ans_testserver02
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/58b37310-fd6f-4580-89e5-fcc69b2ece9f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.