【问题标题】:Ansible compare between two files on remote serverAnsible 比较远程服务器上的两个文件
【发布时间】:2019-05-15 03:54:54
【问题描述】:

有没有办法使用 ansible 比较两个远程服务器中的文件。

Server A: /var/tmp/text1.txt
Server B: /var/tmp/text1.txt

我想检查两个文件的内容是否相同。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    计算两个文件的校验和,然后比较校验和。假设我们的清单中有两台主机名为 host0host1,这样的事情会起作用:

    ---
    - hosts: all
      gather_facts: false
      tasks:
        - command: sha256sum /var/tmp/text1.txt
          register: cksum
    
    - hosts: localhost
      gather_facts: false
      tasks:
        - assert:
            that: hostvars.host0.cksum.stdout == hostvars.host1.cksum.stdout
    

    【讨论】:

    • 哦,是否可以为多于 2 个的主机实现?
    • 当然。逻辑会有点不同,但有可能。
    • 再问一个问题,是否可以 grep 某个字符串和校验和。
    • Ansible 可以运行任意命令并捕获输出。你几乎可以做任何你想做的事情。如果您对如何完成类似的事情有具体的问题,您可能想针对该主题提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多