我创建了一个Ansible剧本,它仅检查到特定端口上目标主机的连接。 这是我的剧本
std::mutex mtx;
mtx.try_lock();
union //I have tried changing this from union to struct to no avail
{
unsigned char* ImageData = nullptr;
FFloat16Color* ImageFloat16;
uint16 * ImageUINT16;
} imgData;
TArray<uint8> data;
uTex->Source.GetMipData(data, 0);
imgData.ImageData = data.GetData(); //Breaks Here
mtx.unlock();
我执行剧本时获得的输出包含已更改(成功)和失败。
在实际情况下,我有许多目标主机,并且我的输出很大。
我想要的是,我想在底部显示最终报告,该报告仅显示源和目标之间所有失败连接的列表。
谢谢
答案 0 :(得分:0)
我想在底部显示最终报告,该报告仅显示源和目标之间所有失败连接的列表
我相信您要寻找的旋钮是stdout callback plugins。虽然我没有看到一个完全按照您的意愿 做的事,但其中有两个似乎可以使您与您亲密:
actionable声称它只会发出Failed和Changed事件:
$ ANSIBLE_STDOUT_CALLBACK=actionable ansible-playbook ...
然后,沿复杂性阶梯上移,json顾名思义,将发出JSON中步骤的记录,从而使您可以准确地过滤输出 您想要的(.failed
是每个任务的布尔值,都表明了这一点)
$ ANSIBLE_STDOUT_CALLBACK=json ansible-playbook ...
然后,正如“插件”部分所暗示的那样,如果您愿意的话,还可以实现自己的工具,以精确地完成您想要的;除了文档之外,还提供了a lot of examples。
答案 1 :(得分:0)
我有一个类似的剧本,并且希望连接失败的列表相同,我要做的是:
register: nc
ignore_errors: true
我的剧本:
---
- name: test-connection
gather_facts: false
hosts: "{{ group_hosts }}"
tasks:
- name: test connection
shell: "nc -w 5 -zv {{ inventory_hostname }} {{ listen_port }}"
register: nc
ignore_errors: true
- name: ok connections
debug: var=nc.stderr
when: "nc.rc == 0"
- name: failed connections
debug: var=nc.stderr
when: "nc.rc != 0"
连接失败的输出示例:
TASK [failed connections] **********************************************************************************************
ok: [10.1.2.100] => {
"nc.stderr": "nc: connect to 10.1.2.100 port 22 (tcp) timed out: Operation now in progress"
}
ok: [10.1.2.101] => {
"nc.stderr": "nc: connect to 10.1.2.101 port 22 (tcp) timed out: Operation now in progress"
}
ok: [10.1.2.102] => {
"nc.stderr": "nc: connect to 10.1.2.102 port 22 (tcp) timed out: Operation now in progress"