tasks:
- name: stat files
stat: path=~/{{ item }}
register: {{ item }}.stat
with_items:
- foo.zip
- bar.zip
- name: copy files
copy: src=~/{{ item }} dest=/tmp/{{ item }}
register: {{ item }}.result
when: {{ item }}.stat.stat.exists == False
with_items:
- foo.zip
- bar.zip
- name: unzip files
shell: cd /tmp/ && unzip -o {{ item }}
when: {{ item }}.result|changed == True
with_items:
- foo.zip
- bar.zip
错误:加载YAML脚本时出现语法错误
若然,怎么样?
答案 0 :(得分:1)
首选方法是使用synchronize
模块。
来自ansible文档(http://docs.ansible.com/ansible/synchronize_module.html#synopsis)
这是rsync的包装器。当然,您可以使用命令操作自己调用rsync,但您还必须添加相当数量的样板选项和主机事实。您仍然可能需要通过命令或shell直接调用rsync,具体取决于您的用例。同步操作意味着可以轻松地使用rsync执行常见操作。它不提供对rsync的全部功能的访问,但确实使大多数调用更容易遵循。
以下是一个例子:
- name: Sync files
synchronize: src=some/relative/path dest=/some/absolute/path