Not sure I'm understanding the original question, but my advice for the cloud 
scenario is to use complex tagging.

The ec2 module in particular can create instances by an exact_count which is 
based on a dictionary of tags. 

    # instances with tags foo & bar & baz=bang
    count_tag:
        - foo
        - bar
        - baz: bang

On Mar 25, 2014, at 5:15 PM, Paul Durivage <[email protected]> wrote:

> So, 
> 
> I don't think I can exactly answer your question but I think I can get you in 
> the right direction.
> 
> So if you were using cloud instead of Vagrant, I'd tell you to use the 
> dynamic inventory scripts.  For example, the rax.py dynamic inventory plugin 
> groups hosts both logically and dynamically at runtime.  There is a Vagrant 
> pluging that also queries for dynamic inventory, but according to the 
> doucmentation, all it does it return a single group called "vagrant".  The 
> Vagrant module is here: 
> https://github.com/ansible/ansible/blob/devel/plugins/inventory/vagrant.py
> 
> If you're doing your work all at once in a single ansible-playbook run 
> (provisioning and bootstrapping), then you can use the add_host module to 
> assign the hosts that you provision via Ansible to an arbitrary group or 
> groups, which you can then target with additional work.
> http://docs.ansible.com/add_host_module.html
> 
> Perhaps combining the inventory script and the add_host module you may find a 
> solution -- but AFAIK, there's not a solution that will do exactly what 
> you're looking for.
> 
> 
> On Tue, Mar 25, 2014 at 7:54 AM, Deyna Cegielski <[email protected]> wrote:
> Hey guys,
> 
> I've written a playbook that defines the configuration policies for an 
> "application server" running nodejs. I've been using this playbook to 
> provision a vagrant box (local sandbox) with great success but now I want to 
> use this playbook to provision sandboxes in the cloud.
> 
> Ultimately I'd like to be able to spin up and provision an infinite number of 
> environments, each existing as their own subdomain e.g. sandbox1.mydomain,com 
> sandbox2.mydomain.com. I've looked into spinning up instances and dynamically 
> so that they are added to my inventory allowing me to then target them for 
> provisioning easily:
> 
> [appservers]
> 1.2.3.4
> 5.6.7.8
> 
> --- hosts: appservers
>     roles: nodejs
> 
> However, how do I distinguish between sandbox1 and sandbox2 in the inventory 
> file whilst maintaining the "appserver" policy? I would like the run a 
> deployment script that only targets the specified sandbox? I was thinking 
> something along the lines of:
> 
> [appservers]
> 1.2.3.4
> 5.6.7.8
> 
> [sandbox1]
> 1.2.3.4
> 
> [sandbox2]
> 5.6.7.8
> 
> And then I can target --limit sandbox1 to only run the deployment task 
> against this group.
> 
> Is this a valid way of achieving my goal?
> 
> 
> 
> -- 
> 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/0767671e-4a6f-4687-8aea-e5a7414b1287%40googlegroups.com.
> 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 [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/CAK6JQEHEmF6bQLdrSwZ5yGGEacELtZtqZ8ckdp_LqgogF0Cibg%40mail.gmail.com.
> 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 [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/D3ECA9B0-EB56-4DB1-B843-A4069C031074%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to