How to pass information/variable while creating VM on esxxi server using Vmware_guest module

Hello,

I am looking to create VM from vmware_guest module on esxi server which is working fine with following playbook,
But- I want to pass details which are needed while booting into VM e.g hostname, username or license agreement.

I tried using

1-custome values and

2-set_facts but this doesn’t work under vmware_guest module

is there any way to automate OS installation by providing variables?

this is my playbook-

Hello Rohan,

it is always better to have the variables and its values in the group_vars section and pass them while executing the playbook.

  1. created a reusable playbook (create a variable inside the playbook in which you want to pass it at the time of playbook execution).
  2. create a group_vars directory and create the vars.yml for all the variables values

please find the attachment for the code to launch a linux server in vmware.

and also refer my github page for the vmware playbooks if need anything.

https://github.com/naveensangadala/Devops-Ansible-Playbooks-for-VMware-AWS-Azure-Cloud

(attachments)

Vmware_linux_server_creation.txt (4.46 KB)
group_vars.txt (337 Bytes)

Hi Rohan,

There are a number of ways to do this.

Take a look at Prompts - https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html which will be interactive like you explained in the original post.

But going forward you might want to use VMware guest templates and OVF images to customize and create new VMs. Take a look at “Clone from VM” and “Clone from template” in VMware. vmware_guest also allows specifying customization specification created in vCenter Customization Specification Manager.

Also, as Naveen S suggested, you can also take a look at this role which is a good start point.

Thanks,

Thanks Abhijeet,

I went through prompts document and yes we can pass values at execution but those values will not be useful while OS installation on VM we have created I guess.
I have a case where i need to pass information to EULA(end user licence agreement) after creating vm through play, is it possible through ansible i am new so looking for ways to solve this issue.

Thanks for Reply.

Thank you,
I went through your document it’s really helpful, I will try those. Will let you know if i am able to use it.