Ansible>文件与stat模块比较:需要检查文件是否具有相同的值
问题描述:
在远程1和远程2上有一个文件:test.txt其版本与日期和这些文件包含不固定。Ansible>文件与stat模块比较:需要检查文件是否具有相同的值
$ cat test.txt
Release_P1.11_2017-08-02-094316
02/08/2017
我需要检查:
- 如果文件中包含相同,则进一步的任务移动。
- 如果文件包含不一致,则停止任务。
---
- name: latest file check
stat:
path: /tmp/test.txt
get_checksum: yes
register: test_file_check
- debug:
var: test_file_check.stat.checksum
现在,如果文件中包含相同,校验值相等,否则它不具有相同的。但我不知道解决方案。
答
所有你需要的是第二次检查,并当条件
- hosts: remote_1
tasks:
- name: first file check
stat:
path: /tmp/test.txt
get_checksum: yes
register: test_file_check_1
...........................................
- hosts: remote_2
tasks:
- name: next check
stat:
path: /tmp/test.txt
get_checksum: yes
register: test_file_check_2
...........................................
- name: Block run only if file has no changes
command: /bin/true
when: test_file_check_1.stat.checksum == test_file_check_2.stat.checksum
http://docs.ansible.com/ansible/latest/playbooks_conditionals.html
到底是什么问题了吗?因为它看起来像“为我做!” - 请求 – techraf
@techraf我可以知道文件的校验和值,但如何检查? –
http://docs.ansible.com/ansible/latest/playbooks_conditionals.html – techraf