Hey guys, I've recently been looking to control vsphere via Ansible which 
lead me to this thread. Noticed a couple pull requests that were before the 
September 26th git core-module/extra-module split by the Ansible team. Just 
wanted to revive this thread for those that had PRs that were closed before 
resolution.

Cheers,

On Saturday, August 23, 2014 8:31:00 AM UTC-5, Dann Bohn wrote:
>
> It seems a few of us have different implementations of cloning a template, 
> or VM. here's mine: Mine sets state to 'clone' (which probably should be 
> 'cloned' or something more descriptive?) and then adds a parameter: 
> template: to specify a template/VM in which to clone from. I had also 
> noticed there is another PR out there to deploy from template.
>
> https://github.com/whereismyjetpack/ansible/tree/clone
>
> If you look at the branch you'll see there is a lot of logic regarding 
> folders, our organization uses VM folders heavily to grant access and 
> divide systems, so I baked that in, too (it's not documented yet) 
>
> I'm waiting on feedback from this PR to document the clone/new vm folders 
> https://github.com/ansible/ansible/pull/7792
>
> P.S I'm also LogLevel9 -- i somehow got two github accounts and I'm trying 
> to merge them into one. 
>
> On Friday, August 22, 2014 10:07:02 AM UTC-4, Michael DeHaan wrote:
>
> "I think the idea of adding hooks that expose the functionality in an 
> 'extra-params' like way is the way to go"
>  It's not.
>
> We really want to model things as nouns, so the vsphere_guest module 
> should take a parameter that can boot from a cloned image.
>
>
> On Thu, Aug 21, 2014 at 9:12 AM, kesten broughton <kesten.b...@gmail.com> 
> wrote:
>
> Snapshots let you store the state of a vm to roll back to later.  It's 
> different from cloning.  I searched the module for "clone" and "template" 
> and neither is there.
>
> The examples don't cover all the config options, nor do the docs.
>  vm_hardware: memory_mb: 2048 num_cpus: 2 osid: centos64Guest scsi: 
> paravirtual but when I played with vsphere_guest my conclusion was that 
> the only support for selecting the base for the vm was
> def add_cdrom(module, s, config_target, config, devices, default_devs, 
> type="client", vm_cd_iso_path=None):
>
> In vmware, there are two very different paths for creating a vm. One, you 
> select the cd_rom which is like a bootable iso. The other (more common) is 
> to build up a template (i believe it is backed by a vmdk) and then clone 
> from the template. The latter is the functionality i need, and the former 
> is all that is supported. I could be wrong, but would need an example to 
> show cloning with the given api.
>
> Tony, I am talking about adding a volume after boot, for logs or data 
> drives, although creating partitions on boot would be nice too.
>
> Vsphere is capable of sooo much, I think the idea of adding hooks that 
> expose the functionality in an 'extra-params' like way is the way to go, 
> otherwise you end up with a dozen vsphere-x modules. If vsphere_guest has 
> that capability and it just needs exposing, great. If it is fundamentally 
> not extend then perhaps other options should be explored.
>
> I think apt and synchronize already offer this type of "deeper through 
> extra-args" functionality. Perhaps the best option would be a master module 
> capable of pretty much everything (with good documentation) and then a few 
> facades modules for the most common usages. The code should be factored out 
> into a handful of modules plus some helper classes that are used by all 
> modules, like authentication and connection.
>
> The trouble with the current vsphere_guest is it offers insufficient 
> capabilities to satisfy any real-world usage pattern, and there doesn't 
> seem to be much activity in extending it to do so. Tony's module with the 
> built in power via spec can do orders of magnitude more but would need lots 
> of examples for the various use cases.
>
> I will try to play with the spec today to see if it meets my needs.
>
>
> On Wed, Aug 20, 2014 at 9:34 PM, Michael DeHaan <mic...@ansible.com> 
> wrote:
>
> It would be much better to add that capability to the existing one than 
> bifurcate the modules.
>
> See this pull request, though it hasn't had comments answered on it - 
> https://github.com/ansible/ansible/pull/7690
>
> Though I would tend to think maybe snapshot is a different module, and 
> cloning is a parameter of the existing one.
>
> Send me a pull request for an update and we can definitely prioritize it, 
> I don't want to see these start to fork - there's no good reason for that.
>
>
> On Wed, Aug 20, 2014 at 10:03 PM, kesten broughton <kesten.b...@gmail.com> 
> wrote:
>
> I started with vsphere_guest but had to give up for lack of the ability to 
> clone from a vm.  There was talk about it, but i don't think it ever made 
> it to trunk.  
>
> It's unfortunate perhaps that vsphere_guest relies on pysphere whereas the 
> current effort depends on pyvmomi which is vmware's officially supported 
> python API.
>
> I need to clone from vm and supply disks.  vsphere_guest has the disk 
> support and ansible-vsphere has clone from template.
>
> pyshere has a headstart in terms of exposed (documented) functionality and 
> community, but will likely be eclipsed by pyvmomi if it can garner a 
> community.  Maybe for now a hybrid approach is necessary with pip-pointed 
> modules dependent on both.  It's no big deal for for a vsphere lover to 
> install both dependencies, although likely one will win in the end.
>
>
>
> On Wed, Aug 20, 2014 at 8:40 PM, Michael DeHaan <mic...@ansible.com> 
> wrote:
>
> Can I ask what's intended to be different from the module we already have 
> in core?
>
> http://docs.ansible.com/vsphere_guest_module.html
>
>
>
>
> On Wed, Aug 20, 2014 at 9:27 PM, kesten broughton <kesten.b...@gmail.com> 
> wrote:
>
> Nice work!  That's half my battle,
> the rest is attaching volumes.
>
> Does your module support that sort of thing?
> How would you extend to do that?
>
> kesten
>
>
> On Wed, Aug 20, 2014 at 7:18 PM, Tony Kinsley <tkins...@gmail.com> wrote:
>
> I actually recently got approval to release a module I wrote to manage 
> vsphere. You can find it at https://github.com/ViaSat/ansible-vsphere
>
> We currently use this to manage our datacenter of test and development 
> vms. It uses pyvmomi which is VMWares python library for interacting with 
> the vsphere api.
> It currently has support for:
>
>    - Create, Clone ( from templates as well ), Delete VMs
>    - Create, Remove, and Revert to VM snapshots
>    - Create, Remove Inventory Folders 
>    - Interact with the Guest Operations Manager.
>
> So in order to get support for all those different things, I came up with 
> a way to convert a "spec" object into pyvmomi objects. This allows me to 
> call roughly any function on a Managed Object Reference. I hope it is not 
> too confusing and the documentation is clear. I gave examples but there is 
> likely more that the module is capable of than the examples I gave. My hope 
> is that this module could be one day included in the core Ansible project.
>
> Let me know what you think.
> Tony
>
> On Tuesday, August 5, 2014 1:53:03 PM UTC-7, Jamal B wrote:
>
> Hi, is there a chance that cloning will be added to the vsphere_guest 
> module in an upcoming release?
>
> On Thursday, July 10, 2014 9:08:23 AM UTC-4, kesten broughton wrote:
>
> I would agree, cloning functionality belongs in vsphere_guest module if 
> possible.
>
> On Wednesday, July 9, 2014 4:30:32 PM UTC-5, Michael DeHaan wrote:
>
> It seems in this case we should try to work the features into the existing 
> module, since they are both about creating guests?
>
>
>
>
> On Wed, Jul 9, 2014 at 3:54 PM, kesten broughton <kesten.b...@gmail.com> 
> wrote:
>
> I was referring to the vsphere_clone mentioned, not vsphere_guest which is 
> in trunk https://github.com/ansible/ansible/tree/devel/library/cloud
>
> As far as i can tell, vsphere_guest currently only supports creating a vm 
> from .iso
>
> What i really need is creating clones from a template.
>
> k
>
>
>
> On Wed, Jul 9, 2014 at 2:47 PM, Michael DeHaan <mic...@ansible.com> wrote:
>
> This is actually already in core.
>
>
>
>
> On Wed, Jul 9, 2014 at 8:11 AM, kesten broughton <kesten.b...@gmail.com> 
> wrote:
>
> If you've got a public git branch, i can help with testing and 
> documentation.
> I've worked with pysphere a bit.
>
> kesten
>
> On Tuesday, July 8, 2014 6:23:06 PM UTC-5, Corey Gaffney wrote:
>
> In looking at my original proposal, I think combining two unique 
> implementations of Async functionality is going to be a bad idea, if not 
> for being difficult to troubleshoot and impossible to test, for being a bad 
> design.   
>
> Instead, I would like to suggest not using PySphere Async support and have 
> Ansible handle Async via it's own mechanism 100%.   While it will prevent 
> having the ability to use Async while using with_items and with_nested, it 
> would be consistent with other modules and if this were to ever become a 
> supported feature, no changes would be necessary for the cloning module.
>
> Furthermore, when using the vSphere API for Async tasks, it has it's own 
> queue and comes with it's own set of issues. Such as the queue filling, 
> tracking the many statuses it supports, additional network calls to get 
> status, implementing additional timeouts, etc.
>
> After I make and test this change, I will do a pull request... with the 
> assumption you believe this is a cleaner implementation.
>
>
> Thanks,
> -Corey
>
>
>
>
> On Tue, Jul 8, 2014 at 5:30 PM, Michael DeHaan <mic...@ansible.com> wrote:
>
> Sounds like we'd be interested in taking a look at least, and a PR is a 
> good way to get that in the queue.  I will admit now the queue is quite 
> longish as we're powering through things the best we can.   
>
> I imagine if async is not used, it's a blocking operation, and the async 
> operation in ansible would be needed to use with it, and that might be 
> worth noting in docs?
>
>
>  
>
> On Tue, Jul 8, 2014 at 2:34 AM, Corey Gaffney <ctg...@gmail.com> wrote:
>
> I have a vsphere_clone module I would like to contribute (amongst others). 
>  My only concern is that I have added async support to the module since 
> this is part of PySphere functionality.  This allows the use of a boolean 
> to indicate asynchronous vs synchronous(the default) in order to cooperate 
> with loops and nested loops in Ansible (which we all know do not support 
> Async at this point in time).  In the spirit of keeping the functionality 
> of PySphere, I have kept this option available and find it quite powerful.
>
> Would this be acceptable, if yes.. then I will perform a pull request or 
> whatever is necessary to contribute.
>
>
> Thanks,
> Corey 
>
>
>
> On Friday, April 19, 2013 5:36:47 PM UTC-5, Michael DeHaan wrote:
>
> Documentation was somewhat short at the time, we're talking about it now, 
> it's all good :)
>
>
>
>
> On Fri, Apr 19, 2013 at 6:01 PM, Dag Wieers <d...@wieers.com> wrote:
>
> On Fri, 19 Apr 2013, Michael DeHaan wrote:
>
>  Ok, that's good.
>
> Out of curiosity, is kernel+initrd+commandline also possible?
>
>
> I doubt vsphere can do that.
>
>
>
>  These may be suitable for core inclusion, the above is not a prereq, but 
> it
> would be nice if it could avoid a PXE environment (in case one already
> existed and we wanted to ignore it).
>
>
> That's why we use ISO media. It's the only common thing all 
> hardware/hypervisors can do properly. (ESX, KVM, iLO, RSA, RHEV)
>
>
>
>  (I believe when I last asked they only did the ISO, or the playbooks that
> referenced them required doing ISO builds.)
>
>
> No, vsphere only did PXE because I never got the administrative rights on 
> vSphere to:
>
>  1. change the boot order
>  2. have an NFS datastore or push images to another datastore
>
> You made conclusions based only on the examples I showed using ISO images. 
> And despite me mentioning that we use ISO just because it makes the most 
> sense in our environment. But PXE is supported for all *_boot modules (it 
> just isn't possible in heterogenous environments or disabled by security in 
> most large companies I have worked)
>
> If you looked at the module documentation it's clear you can do PXE with 
> all of them. (media=network)
>
>
> -- 
> -- dag wieers, d...@wieers.com, http://dag.wieers.com/
> -- dagit linux solutions, in...@dagit.net, http://dagit.net/
>
>
> [Any errors in spelling, tact or fact are transmission errors]
>
> -- 
> 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.
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>
> -- 
> Michael DeHaan <mic...@ansibleworks.com>
>
> CTO, AnsibleWorks, Inc.
> http://www.ansibleworks.com/
>
>   -- 
> 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 post to this group, send email to ansible...@googlegroups.com.
>
> To view this discussion on the web visit https://groups.google.com/d/ms
> gid/ansible-project/9e0fc804-8a2d-4923-bc32-feacb183c472%40googlegroups.
> com 
> <https://groups.google.com/d/msgid/ansible-project/9e0fc804-8a2d-4923-bc32-feacb183c472%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>  -- 
> You received this message because you are subscribed to a topic in the 
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/to
> pic/ansible-project/33hmOR301YI/unsubscribe.
>  To unsubscribe from this group and all its topics, send an email to 
> ansible-proje...@googlegroups.com.
> To post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/ms
> gid/ansible-project/CA%2BnsWgyyZt9RKyaHUOC5Ji%2BhCVsZswbkCe8
> TPSDo0PSoYg9K3Q%40mail.gmail.com 
> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgyyZt9RKyaHUOC5Ji%2BhCVsZswbkCe8TPSDo0PSoYg9K3Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
>
>  -- 
> 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 post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/2f18a176-4a1e-42de-85de-28056ce51b83%40googlegroups.
> com 
> <https://groups.google.com/d/msgid/ansible-project/2f18a176-4a1e-42de-85de-28056ce51b83%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
>
>  -- 
> You received this message because you are subscribed to a topic in the 
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/ansible-project/33hmOR301YI/unsubscribe.
>  To unsubscribe from this group and all its topics, send an email to 
> ansible-proje...@googlegroups.com.
>
> To post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/CA%2BnsWgzA4TN_dX5eLciswrWQXUBk77%
> 3DU1RSPn3UC5vPCOhAG_Q%40mail.gmail.com 
> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgzA4TN_dX5eLciswrWQXUBk77%3DU1RSPn3UC5vPCOhAG_Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>  
> For more options, visit https://groups.google.com/d/optout.
>
>
>  -- 
> 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 post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/CAK5UeTu4Nd%3DNVAXTcZ44Liv6jsCKF83LpDRtp8N
> M_8OxK6FZnA%40mail.gmail.com 
> <https://groups.google.com/d/msgid/ansible-project/CAK5UeTu4Nd%3DNVAXTcZ44Liv6jsCKF83LpDRtp8NM_8OxK6FZnA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
>
>  -- 
> You received this message because you are subscribed to a topic in the 
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/ansible-project/33hmOR301YI/unsubscribe.
>  To unsubscribe from this group and all its topics, send an email to 
> ansible-proje...@googlegroups.com.
>
> To post to this group, send email to ansible...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/8f6fe9e8-ed97-4fba-82cf-429272968d6d%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/ansible-project/8f6fe9e8-ed97-4fba-82cf-429272968d6d%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit 
>
> ...

-- 
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-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/9581d3c6-025f-4c0c-b099-0de87d80a7cd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to