Ansible-如何遍历命令,直到注册变量相等?

时间:2019-06-18 17:13:37

标签: ansible tail

我正在尝试查看文件在过去15秒内是否有任何写操作。

- name: 'Check File for Writes'
  shell: tail -n 50 /path/to/some/file | sha1sum
  loop:
    - 1
    - 2
  register: file_writes
  loop_control:
    pause: 15
  until: file_writes.results[0].stdout == file_writes.results[1].stdout

预期的行为如下:
1.)此任务将运行一次“ tail”命令
2.)然后等待15秒
3.)然后再次运行“ tail”命令
4.)两个tail命令的输出都将被注册在'file_writes'中。
5.)循环执行步骤1到4,直到第一个“ tail”命令的哈希与第二个“ tail”命令的哈希匹配。

实际结果:

“字典对象”没有属性结果。

1 个答案:

答案 0 :(得分:0)

可以将所有逻辑放入脚本中

- shell: "hash0=$(tail -n 50 /path/to/some/file | sha1sum);
          sleep 15;
          hash1=$(tail -n 50 /path/to/some/file | sha1sum);
          while [ \"$hash0\" != \"$hash1\" ]; do
               sleep 15;
               hash0=$hash1;
               hash1=$(tail -n 50 /path/to/some/file | sha1sum);
          done;"