On Tuesday, 13 February 2018 22.01.30 CET Eric Secrist wrote:
> Hi Flow,
> Did you ever get an answer to your question. I see a different number of
> list values for ansible_processor between two hosts, which makes it
> difficult to easily gather the processor vendor across many hosts.
>
> ok: [host1] => {
> "hostvars[inventory_hostname].ansible_processor": [
> "GenuineIntel",
> "Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz",
> "GenuineIntel",
> "Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz"
> ]
> }
>
> ok: [host2] => {
> "hostvars[inventory_hostname].ansible_processor": [
> "0",
> "GenuineIntel",
> "Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz",
> "1",
> "GenuineIntel",
> "Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz"
> ]
> }
>
> host2 has the extra list values of "0" and "1".
The variable ansible_processor, on Linux it is parsing /proc/cpuinfo line by line while looking for
'model name', 'Processor', 'vendor_id', 'cpu', 'Vendor', 'processor'
The first one it find become element 0 and the second becomes element 1 and so on.
So if your /proc/cpuinfo differ you will get different result on different host.
So if you host1 and host2 is Linux it did not find processor on host1 because it does not exist in /proc/cpuinfo therefor the element 0 in the list become the vendor_id instead since it found that first.
This make ansible_processor unpredictable and you should probably find the information yourself.
--
Kai Stian Olstad