2016-01-21 394 views

回答

0

为了得到它的正是这种格式将很难与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它也将环比您在您的库存加上allungrouped定义的所有组中的所有群体。上面的示例过滤了这个(when: item | match("^sys_")),但跳过的项目仍然可以看作是跳过的任务。

但是,如果你有一个固定的群体,你可以简单地过滤那些:

with_items: groups | difference(['all', 'ungrouped', 'all-your-other-groups-here']) 
相关问题