限制shell命令结果列表中的ansible输出

限制shell命令结果列表中的ansible输出,ansible,ansible-2.x,ansible-inventory,ansible-facts,Ansible,Ansible 2.x,Ansible Inventory,Ansible Facts,团队 我怎样才能避免这种巨大的输出,并从结果列表中的每一项中获得我想要的值 我只想显示作为主机名的项目值,并且只显示每个主机的stdout中的行 - name: "Mount count on GPU Nodes" shell: "mount | grep -Ec '/dev/sd.*\\<csi' | awk '{ print $0,\"mounts found on $HOSTNAME\"($0>64? \" that are more than 64

团队

我怎样才能避免这种巨大的输出,并从结果列表中的每一项中获得我想要的值

我只想显示作为主机名的项目值,并且只显示每个主机的stdout中的行

      - name: "Mount count on GPU Nodes"
        shell: "mount | grep -Ec '/dev/sd.*\\<csi' | awk '{ print $0,\"mounts found on $HOSTNAME\"($0>64? \" that are more than 64.\" : \".\") }'"
        register: mounts_count
        changed_when: false
        failed_when:
        delegate_to: "{{ item }}"
        with_items: "{{ groups['kube-gpu-node'] }}"

      - name: Check if csi related mounts are present on gpu nodes
        assert:
          that:
            - item.stdout is search('64')
          fail_msg: " mounts are present on this node"
          success_msg: "mounts are not present on this node"
        loop: "{{ mounts_count.results }}"
        loop_control:
          label: "{{ item.item }}"
        ignore_errors: yes

Ansible的设计并不是为了在控制台上产生“良好”的输出。如果希望以特定格式生成信息,最好从模板生成文件

这就是说,
assert
模块主要设计为调试工具,并生成详细的输出。我认为您可以使用
fail
模块获得所需的行为:

      - name: Check if csi related mounts are present on gpu nodes
        fail:
          msg: " mounts are present on this node"
        when: item.stdout is not search('64')
        loop: "{{ mounts_count.results }}"
        loop_control:
          label: "{{ item.item }}"
        ignore_errors: yes

当条件为false时,这将简单地“跳过”那些
条件为false的项目。

Ansible的设计并不是为了在控制台上产生“良好”的输出。如果希望以特定格式生成信息,最好从模板生成文件

这就是说,
assert
模块主要设计为调试工具,并生成详细的输出。我认为您可以使用
fail
模块获得所需的行为:

      - name: Check if csi related mounts are present on gpu nodes
        fail:
          msg: " mounts are present on this node"
        when: item.stdout is not search('64')
        loop: "{{ mounts_count.results }}"
        loop_control:
          label: "{{ item.item }}"
        ignore_errors: yes

条件为false时,这将简单地“跳过”条件为false的项目。

我想打印成功和失败消息。基本上,它的报告任务是找到多少挂载。0、64、64+我想打印成功和失败消息。基本上,它的报告任务是找到多少挂载。0, 64, 64+
      - name: Check if csi related mounts are present on gpu nodes
        fail:
          msg: " mounts are present on this node"
        when: item.stdout is not search('64')
        loop: "{{ mounts_count.results }}"
        loop_control:
          label: "{{ item.item }}"
        ignore_errors: yes