在Ansible中,我们可以使用lineinfile模块

时间:2019-05-07 17:52:09

标签: ansible

我必须在服务器上找到所有config.xml并在给定服务器上生成列表。

一旦我们注册了文件列表,我就必须使用Ansible检查列表中每个文件的内容

我试图导出所有config.xml的路径 注册并打印列表 将注册的变量添加到lineinfile路径中

##Derive Config.xml path
- name: Find the location of xml file
  shell: find {{ wlx_mount_point }} -maxdepth 1 -name {{xml_file}} | rev | cut -d '/' -f3- | rev
  register: wlx_domain_home
  ignore_errors: yes

- debug:
    msg: "{{ wlx_domain_home.stdout_lines|list }}"

- name: check domain home directory exists
  stat:
    path: "{{ wlx_domain_home |list }}"
  ignore_errors: true

- debug:
    msg: "{{ wlx_domain_home.stdout_lines|list }}"

    - name: "Ensure Logging Settings in config.xml"
      lineinfile:
        line: "{{ item.line }}"
        regexp: "{{ item.regexp }}"
        path: "{{ wlx_domain_home.stdout_lines|list }}/config/config.xml"
        state: present
        backrefs: yes
      register: config.xml.Logging
      with_fileglob: "{{ wlx_domain_home.stdout_lines|list }}/config/config.xml"
      with_items:
        - line: "<logger-severity>Info</logger-severity>"
          regexp: "^logger-severity.*"

预期结果是,它必须在每个文件中查找行并在列表中循环。 `它打印列表并且找不到内容

  

“ _ ansible_ignore_errors”:是,“ msg”:“目的地   [u'/ appl / cmpas9 / user_projects / pte-ipscasws',   u'/ appl / bbb / user_projects / qa-ucxservices_bkp',   u'/ appl / app / user_projects / weiss_apps12',   u'appl / view / user_projects / weiss_apps12_oldbkp',   u'appl / voc / user_projects / qa-voc'] / config / config.xml不存在!”   }

1 个答案:

答案 0 :(得分:0)

这是我解决问题的方式。现在它给出输出 -名称:查找所有Weblogic域路径   Shell:找到/ tech / appl -type f -name config.xml   注册:wlx_domain_config -调试:     var:wlx_domain_config.stdout_lines

  • 名称:“确保config.xml中的allow-uncrypted-null-cipher加密设置” shell:grep -i“” {{item}} with_items:“ {{wlx_domain_config.stdout_lines}}” 注册:allowunencrypted

  • 调试: var:allowunencrypted.stdout_lines