複数ファイルのAnsible変更文字列

複数ファイルのAnsible変更文字列

その中には複数のサブフォルダとファイルがあるフォルダがあります。すべてのファイルの文字列を一度に変更する必要があります。これは1つのファイルに対してのみ実行できますが、サブフォルダ内の他のファイルには影響しません。

- 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   

オンにすれば、好きな動作が得られると思います。

関連情報