0
我想获得有关操作系统版本或主机其他属性的某种统计信息。如何使用Ansible计算有关主机(如操作系统版本)的统计信息?
我非常希望获得类似:
debian 8 - 10 machines
debian 7 - 5 machine
centos 7 - 1 machine
我想获得有关操作系统版本或主机其他属性的某种统计信息。如何使用Ansible计算有关主机(如操作系统版本)的统计信息?
我非常希望获得类似:
debian 8 - 10 machines
debian 7 - 5 machine
centos 7 - 1 machine
为了得到它的正是这种格式将很难与Ansible。我认为你最好的选择就是创建一个自定义回调插件。否则,你就永远有任务的Ansible典型的输出格式及其状态等
如果格式不实际事情这么多,你只是想要的信息,你可以做这样的事情:
- group_by: key=sys_{{ ansible_distribution }}_{{ ansible_distribution_major_version }}
- debug: msg="{{ groups[item] | length }}"
with_items: groups
delegate_to: localhost
run_once: true
when: item | match("^sys_")
将输出是这样的:
TASK [debug] *******************************************************************
ok: [some.host -> localhost] => (item=sys_Debian_8) => {
"item": "sys_Debian_8",
"msg": "10"
}
ok: [some.host -> localhost] => (item=sys_Debian_7) => {
"item": "sys_Debian_7",
"msg": "2"
}
ok: [some.host -> localhost] => (item=sys_CentOS_7) => {
"item": "sys_CentOS_7",
"msg": "1"
}
由于调试任务遍历已知Ansible它也将环比您在您的库存加上all
和ungrouped
定义的所有组中的所有群体。上面的示例过滤了这个(when: item | match("^sys_")
),但跳过的项目仍然可以看作是跳过的任务。
但是,如果你有一个固定的群体,你可以简单地过滤那些:
with_items: groups | difference(['all', 'ungrouped', 'all-your-other-groups-here'])