【问题标题】:How do I split the results of an Ansible list?如何拆分 Ansible 列表的结果?
【发布时间】:2022-11-20 05:28:26
【问题描述】:

我正在尝试拆分寄存器内容的结果。我得到的结果来自 grep 命令,它有我正在寻找的文件,用冒号 (:) 分隔。

剧本如下:

    ---
    - name: "Identify locations of local interactive user home directories"
      getent:
        database: passwd
        split: ':'
      register: passwd
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - remediate
        - RHEL-07-021040-remediate
        - cat2-remediate
        - not-evaluated
        - not-remediated

    - name: "Search local interactive user initialization files for 'umask'"
      shell: grep -oi ^umask {{ item }}/.* -d skip| grep -v '.bash_history'
      loop: "{{ passwd.ansible_facts.getent_passwd | dict2items|json_query('[? contains(value,`/bin/bash`)].value[4]') }}"
      register: umaskfiles
      #when: passwd.ansible_facts.getent_passwd | dict2items|json_query('[? contains(value,`/bin/bash`)].value[4]')
      failed_when: umaskfiles.rc > 1
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - not-evaluated

    - name:
      debug:
        msg: "{{ umaskfiles.results[0] | dict2items | json_query('[? contains(key,`stdout_lines`)].value[0:]') }}"
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - remediate
        - RHEL-07-021040-remediate
        - cat2-remediate
        - not-evaluated
        - not-remediated `
ansible-playbook 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/etc/ansible/library']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible-2.9.6-py2.7.egg/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.5 (default, Aug 13 2020, 02:51:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]`
TASK [rhel-disa-stig-role-master : debug] *******************************************************************************************************
 [started TASK: rhel-disa-stig-role-master : debug on chucksl10]
ok: [chucksl10] => {
    "msg": [
        [
            "/home/testusr/.bashrc:umask"
        ]
    ]
}

我已经走到这一步了,但我需要将结果输入到这个任务中:

    - name: Remove 'umask' from Identify initialization files
      replace: 
        path: "{{ item.stdout_lines }}"
        regexp: '^umask'
        replace: ''
      loop: "{{ uumaskfiles.results[0:] }}"
      loop_control:
        index_var: index
      when: item.rc == 0
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - remediate
        - RHEL-07-021040-remediate
        - cat2-remediate
        - not-evaluated
        - not-remediated `

任何建议将不胜感激。

谢谢, ~都市勇士

【问题讨论】:

    标签: ansible


    【解决方案1】:

    解决了:

    ---
    - name: "Identify locations of local interactive user home directories"
      getent:
        database: passwd
        split: ':'
      register: passwd
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - remediate
        - RHEL-07-021040-remediate
        - cat2-remediate
        - not-evaluated
        - not-remediated
    
    - name: "Search local interactive user initialization files for 'umask'"
      shell: grep -oi ^umask {{ item }}/.* -d skip| grep -v '.bash_history'
      loop: "{{ passwd.ansible_facts.getent_passwd | dict2items|json_query('[? contains(value,`/bin/bash`)].value[4]') }}"
      register: umaskfiles
      failed_when: umaskfiles.rc > 1
      tags:
       - audit
       - RHEL-07-021040-audit
       - cat2-audit
       - not-evaluated
    
    - name: Remove 'umask' from Identify initialization files
      replace: 
        path: "{{ item.stdout_lines[0].split(':')[0] }}"
        regexp: '^umask.*'
        replace: ''
      loop: "{{ umaskfiles.results }}"
      failed_when: item.rc > 1
      when: item.stdout_lines[0] is defined
      tags:
        - audit
        - RHEL-07-021040-audit
        - cat2-audit
        - remediate
        - RHEL-07-021040-remediate
        - cat2-remediate
        - not-evaluated
        - not-remediated 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多