Overriding value of 'hosts' playbook variable

Hi guys,

Anyone know if you can completely override the hosts: value in a playbook?

I don’t use inventory files so I always just have this set to ‘all’. But when I call a playbook from another playbook like this, for example:

Playbook1

  • name: Format EBS volumes
    hosts: ec2_group # coming from the ec2 module and add_host

  • include: playbook2.yml hosts=ec2_group

or

  • { include: playbook2.yml, hosts: ec2_group }

It works but then it also tries to run the playbook to the ‘all’ group (which is everything in my default hosts file). I want the ‘all’ value to be completely overridden by the new value I specified.

Is there a better way to do this without creating an inventory file?

Thanks

I don’t think what you want to do is override a value at runtime, but rather create a new group dynamically at runtime. Make a new group for hosts that meet some arbitrary criteria. See the group_by module – I think you’ll find what you’re looking for there.

I’m confused by this as well.

When you say you are not using an inventory file, do you mean you are using the dynamic inventory plugin?

If you want a group that contains just the new hosts you have brought online, or want to add new hosts (in memory) to an existing host name, look at how the “add_host” plugin is used in various examples – it does exactly this.