首页 > 解决方案 > 评估 Ansible 标准输出以结束输出

问题描述

我有一个 shell 任务,它获取碎片整理配置,并将其存储在一个变量中,例如:

- name: Check if hugepages is disabled
  shell: cat /sys/kernel/mm/transparent_hugepage/defrag
  register: hugepages_status
  changed_when: False

在以下任务中,我想评估hugepages_status, 以查看其中的最后一个词是否为“从不”。我如何阅读hugepages_status以评估字符串中的最后一个单词?

就像是:

- name: Disable hugepages
  shell: echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
  when: swap_status.stdout != "*never"

标签: ansible

解决方案


您可以使用 is search 来搜索字符串而不考虑位置。我认为这足以满足这种情况。如果您只想在最后搜索,请告诉我。

---
- name: play
  hosts: localhost
  tasks:
    - name: Check if hugepages is disabled
      shell: cat /sys/kernel/mm/transparent_hugepage/defrag
      register: hugepages_status

    - name: display the output
      debug:
        var: hugepages_status.stdout_lines
      when: hugepages_status.stdout is search('never')

推荐阅读