如何计算ansible中的任务成功/失败?
我正在使用ansible设置一个分布式应用程序。我正在安装节点,然后创建虚拟接口,虚拟接口不能多于节点。因此,如果我在X节点上安装,而Y节点失败,我需要检查没有更多的(X-Y)虚拟接口 是否有一种方法可以为特定任务获取成功/失败节点数的数值,以便我以后可以使用它来检查虚拟接口的数量?使用。具体请参见和“统计”。例如ansible runner和剧本如何计算ansible中的任务成功/失败?,ansible,Ansible,我正在使用ansible设置一个分布式应用程序。我正在安装节点,然后创建虚拟接口,虚拟接口不能多于节点。因此,如果我在X节点上安装,而Y节点失败,我需要检查没有更多的(X-Y)虚拟接口 是否有一种方法可以为特定任务获取成功/失败节点数的数值,以便我以后可以使用它来检查虚拟接口的数量?使用。具体请参见和“统计”。例如ansible runner和剧本 shell> cat private3/project/test.yml - hosts: test_01:test_02 gather_
shell> cat private3/project/test.yml
- hosts: test_01:test_02
gather_facts: false
tasks:
- debug:
var: inventory_hostname
- fail:
msg: Fail test_02
when: inventory_hostname == 'test_02'
在目录private3/artifacts/ID01/job\u events/
中创建记录。我不知道有任何公开可用的工具来分析这些事件。我已经创建了一个剧本来显示失败的任务
shell> cat pb.yml
- hosts: localhost
gather_facts: false
vars:
events_dir: private3/artifacts/ID01/job_events
tasks:
- find:
paths: "{{ events_dir }}"
register: result
- include_vars:
file: "{{ item }}"
name: "{{ 'my_var_' ~ my_idx }}"
loop: "{{ result.files|json_query('[].path') }}"
loop_control:
index_var: my_idx
label: "{{ my_idx }}"
- set_fact:
my_events: "{{ my_events|default({})|
combine({my_key: lookup('vars', my_key)}) }}"
loop: "{{ range(0, result.matched)|list }}"
loop_control:
index_var: my_idx
vars:
my_key: "{{ 'my_var_' ~ my_idx }}"
- set_fact:
my_list: "{{ my_events|json_query('*.{counter: counter,
event: event,
task: event_data.task_action,
host: event_data.host}') }}"
- debug:
var: item
loop: "{{ my_list|sort(attribute='counter') }}"
loop_control:
label: "{{ item.counter }}"
when: item.event == 'runner_on_failed'
给予
可以根据您的需要随意调整剧本。使用。具体请参见和“统计”。例如ansible runner和剧本
shell> cat private3/project/test.yml
- hosts: test_01:test_02
gather_facts: false
tasks:
- debug:
var: inventory_hostname
- fail:
msg: Fail test_02
when: inventory_hostname == 'test_02'
在目录private3/artifacts/ID01/job\u events/
中创建记录。我不知道有任何公开可用的工具来分析这些事件。我已经创建了一个剧本来显示失败的任务
shell> cat pb.yml
- hosts: localhost
gather_facts: false
vars:
events_dir: private3/artifacts/ID01/job_events
tasks:
- find:
paths: "{{ events_dir }}"
register: result
- include_vars:
file: "{{ item }}"
name: "{{ 'my_var_' ~ my_idx }}"
loop: "{{ result.files|json_query('[].path') }}"
loop_control:
index_var: my_idx
label: "{{ my_idx }}"
- set_fact:
my_events: "{{ my_events|default({})|
combine({my_key: lookup('vars', my_key)}) }}"
loop: "{{ range(0, result.matched)|list }}"
loop_control:
index_var: my_idx
vars:
my_key: "{{ 'my_var_' ~ my_idx }}"
- set_fact:
my_list: "{{ my_events|json_query('*.{counter: counter,
event: event,
task: event_data.task_action,
host: event_data.host}') }}"
- debug:
var: item
loop: "{{ my_list|sort(attribute='counter') }}"
loop_control:
label: "{{ item.counter }}"
when: item.event == 'runner_on_failed'
给予
请根据您的需要随意调整剧本