ansible playbook无法继续,因为`tar`在我们阅读时因文件更改而失败

时间:2016-01-26 20:45:20

标签: linux ansible tar ansible-playbook

我正在运行ansible-playbook,它正在运行tar命令来压缩目录。以下是ansible任务。

  - name: tar the old code
    command: tar -czf {{ansible_date_time.date}}.tar.gz /home/ubuntu/my-folder

上面给出了以下错误。

  

"警告":使用unarchive模块而不是运行tar   stderr:tar:删除前导' /'来自会员名称   tar:/home/ubuntu/my-folder/xyz.log:我们读取时文件更改

我还尝试使用选项--ignore-failed-read,但它没有压缩目录,但成功运行了其余任务。

  - name: tar the old code
    command: tar -czf {{ansible_date_time.date}}.tar.gz /home/ubuntu/my-folder  --ignore-failed-read

由于此任务介于其他任务之间,因此必须在此任务之后运行的任务失败。

ansible没有给模块代码tar。只有unarchive模块可以解压缩目录。

1 个答案:

答案 0 :(得分:1)

当tar命令在我们读取"文件时发生变化时,它将以1的返回码退出。问题,虽然我无法说出Ansible如何解释这一点,但我认为它会将任何非零返回码视为"失败。"我通过告诉Ansible重新定义它认为失败的东西来解决这个问题:

- name: tar the old code
  command: tar -czf {{ansible_date_time.date}}.tar.gz /home/ubuntu/my-folder
  register: tar_result
  failed_when: tar_result.rc > 1