difference in two file using ansible module

后端 未结 3 529
失恋的感觉
失恋的感觉 2021-01-06 05:16

I want to see if there is any changes in the file one present in local and other on the remote host. If there is any difference, it should be visible in screen what should

相关标签:
3条回答
  • 2021-01-06 05:43

    This sounds like a task you can do with the debug module. Use diff to get the diff of both files. Register the output and use debug for display:

    - name: Generate diff
      command: diff  /tmp/abc.txt  /tmp/def.txt
      register: diff_result
    
    - name: Show diff result
      debug:
        var: diff_result
    
    0 讨论(0)
  • 2021-01-06 05:49

    You can also use check_mode: yes and diff: yes tasks options to show differences:

    ---
    - hosts: localhost
      gather_facts: no
    
      tasks:
        - name: "Only show diff between test1.txt & test2.txt" 
          copy:
            src: /tmp/test2.txt
            dest: /tmp/test1.txt
          check_mode: yes
          diff: yes
    

    Example:

    # cat /tmp/test1.txt
    test1
    
    # cat /tmp/test2.txt
    test1
    test2
    
    # ansible-playbook diff.yaml
    PLAY [localhost] ***********************************************************************************************************************************
    
    TASK [Only show diff between test1.txt & test2.txt] ************************************************************************************************
    --- before: /tmp/test1.txt
    +++ after: /tmp/test2.txt
    @@ -1 +1,2 @@
     test1
    +test2
    
    changed: [localhost]
    
    PLAY RECAP *****************************************************************************************************************************************
    localhost                  : ok=1    changed=1    unreachable=0    failed=0
    

    More information on check_mode & diff here.

    0 讨论(0)
  • 2021-01-06 05:49

    From the command line,

    ansible <host-pattern> -m copy -CD -a "src=<your local file> dest=<remote file or location>"
    

    The -m copy option causes Ansible to invoke the copy module

    The -C option causes Ansible to Check whether a change would occur, rather than perform the copy

    The -D option causes Ansible to report what changes would occur if the copy were to be made

    Output is similar to what the UNIX diff command produces, only this reports differences between a local file and remote copies.

    0 讨论(0)
提交回复
热议问题