Ansible 任务无法在 Ansible 外壳结果的列表输出中搜索字符串



团队,我有以下任务,但我需要在其输出中搜索 sdd,这是一个列表。 列出输出和我的断言失败。我只想根据结果打印一条消息 sdd 在此任务中找到和未找到。

#Local volume provision sdd check on CPU node
- name: "Verify LVP Mounts sdd exists on CPU Nodes for mount_device"
shell: "mount | grep sdd"
register: lvp_mount
ignore_errors: yes
failed_when: False
delegate_to: "{{ item }}"
with_items: "{{ groups['kube-cpu-node'] }}"
- set_fact:
sdd: lvp_mount.results[0].stdout_lines
when: lvp_mount is succeeded
- debug:
var: lvp_mount.results[0].stdout_lines
- debug:
msg: "Assert SDD Mounts present"
failed_when: lvp_mount.results[0].stdout_lines[0] is search('sdd')

输出

debug] *****************************************************************************************************************************
Wednesday 27 November 2019  23:19:36 +0000 (0:00:00.066)       0:00:04.251 ****
ok: [localhost] => {
"lvp_mount.results[0].stdout_lines": [
"/dev/sdd1 on /local-volumes/postgres/b5b296cf-02cd-41b3-b090-4e2dc77c6867 type ext4 (rw,relatime,data=ordered)"
]
}
TASK [services-pre-install-checks : debug] *****************************************************************************************************************************
Wednesday 27 November 2019  23:19:36 +0000 (0:00:00.066)       0:00:04.317 ****
fatal: [localhost]: FAILED! => {
"msg": "Assert SDD Mounts present"
}

我的错,我在做与逻辑相反的事情。不需要做。 不是搜索("SDD"(

- name: "Verify LVP Mounts sdd exists on CPU Nodes for mount_device"
shell: "mount | grep sdd"
register: lvp_mount
ignore_errors: yes
failed_when: False
delegate_to: "{{ item }}"
with_items: "{{ groups['kube-cpu-node'] }}"
- debug:
msg: "Assert SDD Mounts present"
failed_when: lvp_mount.results[0].stdout_lines[0] is not search('sdd')

最新更新