I come into this one a bit late as I had this problem this week only.
I sometimes do not need roles or playbooks to run on virtual machines, so
one way I found to work around the fact that ansible is missing puppet's
"is_virtual" fact is that put my physical machines in a specific group.
I would have an inventory looking like this:
[baremetal]
oslo
bergen
[builders]
rpmbuilder
debbuilder
[ci]
perforce:222
My playbook would include a role that'd play on each and every node in the
inventory, but if I wanted to restrict it to non-virtual nodes, I'd add
this line in my role tasks:
- name: "Jetbrain's products"
tags:
- jetbrains
include: jetbrains.yaml
when: ansible_hostname == 'perforce' or ansible_hostname in groups
['baremetal']
That does the trick for me, no need to register variables, or such.
Another way is to have multiple inventory files. This makes hosts
management a bit more complicated, but also more flexible.
Regards,
-- Jeff
On Tuesday, 7 February 2017 19:21:58 UTC-5, Simon Wydooghe wrote:
>
> Thanks for the reply, Kai. I did notice those variables, however they just
> list 'NA' for a simple desktop I have here. Anyway, thanks to your tip I
> had a quick browse through the facts source code, and if the machine was
> any type of guest, it seems it would definitely get picked up. So I think
> it's fairly safe to say that 'NA' can be presumed to be a bare metal
> machine which solves my problem as far as I am concerned!
>
> On Tue, Feb 7, 2017 at 8:24 PM, Kai Stian Olstad <[email protected]
> <javascript:>> wrote:
>
>> On 07. feb. 2017 19:15, Simon Wydooghe wrote:
>>
>>> Does anyone have a suggestion on how to detect whether a machine is a
>>> bare
>>> metal one or a virtual one using the existing Ansible facts? In Puppet
>>> there was a 'physical' boolean which could be used, but going through the
>>> Ansible facts of an example host here, I can't quite figure out
>>> something I
>>> can use. Am I missing something? I could of course write my own fact, but
>>> I'd like to check here to see if that can be avoided.
>>>
>>
>> You have ansible_virtualization_role, host or guest.
>>
>> If you would like to find out which hypervisor you can check the
>> ansible_virtualization_type.
>>
>>
>> --
>> Kai Stian Olstad
>>
>> --
>> 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/YtIU-mRFeIE/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/b617a8d7-5eae-a0a7-c585-71be3af1e82e%40olstad.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/d727e91e-2611-43e9-a177-31e4816f441e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.