我正试图在我的ansible play中避免使用'命令'模块列表,但似乎没有关于tar / gz的ansible文档,并且synch模块似乎......不完整。
我想gzip一个大目录的tarball然后rsync到另一个主机。即使使用'命令'似乎也不适合我:<
"warnings": ["Consider using unarchive module rather than running tar"]}
[WARNING]: Consider using unarchive module rather than running tar
PLAY RECAP *********************************************************************
ctarlctarl : ok=2 changed=0 unreachable=0 failed=1
'unarchive'模块似乎期望已经压缩/存档的目录,似乎不是我想要的解决方案。
相关但无人接听:ansible playbook unable to continue as the `tar` fails due to `file change as we read`
(编辑)显示任务,因为有人问我是否记得z。 =)
- name: tar ball app dir, exclude conf files
command: "tar -zcvf {{ item.code_dir }}.tar.gz --exclude '*config*' ."
args:
chdir: "{{ apps_home }}/{{ item.code_dir }}"
with_items:
- "{{ processes }}"
答案 0 :(得分:0)
所以,我让它工作......只是不合时宜。
然而,这使得我在命令后输入了'命令'解决方案 - 这是我希望我最终能够避免的。不过那里有一半。
答案 1 :(得分:0)
此警告提示您可以使用ansible unarchive模块而不是tar commnad。语法非常简单,如下所示:
- unarchive: src=foo.tgz dest=/var/lib/foo
您可以从此处获得更多详细信息:unarchive_module
答案 2 :(得分:0)
在2.2版中,ansible将获得一个存档模块:https://docs.ansible.com/ansible/archive_module.html
通过它,您可以使用ansible模块对所有文件进行存档,传输和取消存档,而不必使用命令行参数。