【发布时间】:2020-12-10 12:08:44
【问题描述】:
我在 ansible 列表上应用 regex_search 时遇到问题。以下是我的用例:
我有一个如下所示的列表。现在我想从列表的每个索引中提取 workflowinstanceid 参数并将其存储在单独的列表中。我正在尝试使用 regex_search 来实现这一点。谁能帮帮我?
"final_dr_logs": [
{
"_ansible_parsed": true,
"stderr_lines": [],
"changed": true,
"stdout": "[defaultAsyncAction1] - 12/10/2020 02:56:36 CLIENT22 workflowinstanceid=jbpm$160515,
"_ansible_item_result": true,
"delta": "0:00:00.273316",
"stdout_lines": [
"[defaultAsyncAction1] - 12/10/2020 02:56:36 CLIENT22 workflowinstanceid=jbpm$160515"
],
"_ansible_item_label": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"end": "2020-12-10 06:23:36.680901",
"_ansible_no_log": false,
"failed": false,
"item": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"stderr": "",
"rc": 0,
},
{
"_ansible_parsed": true,
"stderr_lines": [],
"changed": true,
"stdout": "[defaultAsyncAction1] - 12/10/2020 02:56:36 CLIENT22 workflowinstanceid=jbpm$160516,
"_ansible_item_result": true,
"delta": "0:00:00.273316",
"stdout_lines": [
"[defaultAsyncAction1] - 12/10/2020 02:56:36 ES194CLIENT22 workflowinstanceid=jbpm$160516"
],
"_ansible_item_label": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"end": "2020-12-10 06:23:36.680901",
"_ansible_no_log": false,
"failed": false,
"item": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"stderr": "",
"rc": 0,
},
{
"_ansible_parsed": true,
"stderr_lines": [],
"changed": true,
"stdout": "[defaultAsyncAction1] - 12/10/2020 02:56:36 ES194CLIENT22 workflowinstanceid=jbpm$160517,
"_ansible_item_result": true,
"delta": "0:00:00.273316",
"stdout_lines": [
"[defaultAsyncAction1] - 12/10/2020 02:56:36 ES194CLIENT22 workflowinstanceid=jbpm$160517"
],
"_ansible_item_label": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"end": "2020-12-10 06:23:36.680901",
"_ansible_no_log": false,
"failed": false,
"item": "16b70d66-493a-4cdb-98fd-eb5de081491d ",
"stderr": "",
"rc": 0,
}]
这是我的代码:
- name: Extract workflow instance IDs
para_wfId: "{{ item | regex_search(regexp, '\\1') | first }}"
vars:
regexp: 'workflowinstanceid=jbpm\$(.*?),'
with_items:
- "{{ final_dr_logs }}"
register: wfid
我遇到的错误:
预期输出:
new_list=[160515,160516,160517]
【问题讨论】:
-
您的剧本不尊重 yaml 和/或 ansible 语法(特别是您的第二个任务行没有正确缩进)。请take Y minutes to learn yaml注意缩进和换行。您还应该通读Intro to playbooks 以了解基本概念和语法。您可以在发布之前使用yamllint 和ansible-lint 验证您的剧本。
-
此外,我不知道任何名为
para_wfId的模块,并且您的任务中没有其他任何东西看起来像模块名称。