Ansible 更改多个文件中的字符串

Ansible 更改多个文件中的字符串

我有一个文件夹,里面有几个子文件夹和文件。我需要立即更改所有文件中的字符串。我只能对一个文件执行此操作,但在子文件夹中的其他文件中,这不会影响它们。

- name: Find all files with .json extension
      find:
        paths: /test/configuration/nginx/trials/{{ name }}/trial-admin-app/
        patterns: 'app-config.json'
      register: repos   



    - name:  Change string inside file    
      replace:
        dest: /test/configuration/nginx/trials/{{ name }}/trial-admin-app/                          #app-config.json    
        regexp: '{trial-name}'
        replace: '{{ name }}'
      with_items: "{{ repos.stdout_lines }}"

如何更改文件夹中还有子文件夹的所有文件?

答案1

您正在使用的模块find有一个recurse参数,但默认情况下它是关闭的。

- name: Find all files with .json extension
      find:
        paths: /test/configuration/nginx/trials/{{ name }}/trial-admin-app/
        patterns: 'app-config.json'
        recurse: yes
      register: repos   

通过打开它,我想你会得到你想要的行为。

相关内容