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

112 views
Skip to first unread message

Rohan Kalap

unread,
Jan 10, 2020, 8:37:22 AM1/10/20
to Ansible Project
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-
---
- hosts: localhost
  gather_facts: no
  tasks:
  - debug:
      msg: connection to host machine successful

  - name: create test1 vm from esxi server
#    expect:
#    command: "configuration file!"
#    responses:
#            'PRESS \<ENTER\> TO CONTINUE:': ''
    vmware_guest:
      hostname: "x.x.x.x"
      username: "root"
      password: "password"
      validate_certs: no
      folder: /ha-datacenter/vm/
      name: "test-vm"
      state: poweredon
      guest_id: centos64Guest
      esxi_hostname: "hostname"
      disk:
      - size_gb: 160
        type: thin
        datastore: datastore1
      hardware:
        memory_mb: 3000
        num_cpus: 4
        scsi: paravirtual
      cdrom:
        type: iso
        iso_path: "[datastore1] centos.iso"
#      expect:
#      command: "configuration!"
#      responses:
#        'PRESS \<ENTER\> TO CONTINUE:': ''
      customization:                                                             # i tried using customization attribute but of no use
        hostname: "hostname"
        domain: "network"
      networks:
      - name: VM Network
        mac: aa:bb:dd:aa:00:23
        ip: x.x.x.x
        netmask: 255.255.255.0
        device_type: vmxnet3
      wait_for_ip_address: yes
    delegate_to: localhost
    register: deploy_vm

naveen s

unread,
Jan 10, 2020, 9:01:41 AM1/10/20
to ansible...@googlegroups.com
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.


Thanks & Regards,
Naveen Sangadala


--
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 ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/3713e737-2147-4978-9fcb-28a22f371ee2%40googlegroups.com.
Vmware_linux_server_creation.txt
group_vars.txt

Abhijeet Kasurde

unread,
Jan 10, 2020, 10:39:10 AM1/10/20
to ansible...@googlegroups.com
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,

On Fri, Jan 10, 2020 at 7:07 PM Rohan Kalap <rohan...@gmail.com> wrote:
--
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 ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/3713e737-2147-4978-9fcb-28a22f371ee2%40googlegroups.com.


--
Thanks,
Abhijeet Kasurde

Rohan Kalap

unread,
Jan 13, 2020, 1:26:57 AM1/13/20
to Ansible Project
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. 
To unsubscribe from this group and stop receiving emails from it, send an email to ansible...@googlegroups.com.


--
Thanks,
Abhijeet Kasurde
Message has been deleted

Rohan Kalap

unread,
Jan 17, 2020, 2:53:20 AM1/17/20
to Ansible Project
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.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages