我有两个 ansible 任务,它们下载存档(例如最新的 wordpress 版本)并提取该存档。
- name: Download WordPress
tags:
- wordpress
- wordpress:install
get_url: "url=http://wordpress.org/wordpress-{{ wordpress_version }}.tar.gz dest={{ www_docroot }}/wordpress-{{ wordpress_version }}.tar.gz"
- name: Extract archive
tags:
- wordpress
- wordpress:install
unarchive:
src: "{{ www_docroot }}/wordpress-{{ wordpress_version }}.tar.gz"
dest: "{{ www_docroot }}"
remote_src: True
我是学习 ansible 的新手,我想弄清楚:我怎样才能使它成为幂等的 -
- 如果同名文件已经存在则不下载文件,或者
- 如果指定的目标文件夹已经存在,则不提取/展开 gzip 存档
谢谢!
最佳答案
考虑第一个查询 (get_url
) 的 force 选项。
考虑第二个查询 (unarchive
) 的 creates 选项。
示例代码,您需要这样的东西吗?
- name: Download WordPress
tags:
- wordpress
- wordpress:install
get_url:
url : "http://wordpress.org/wordpress-{{ wordpress_version }}.tar.gz dest={{ www_docroot }}/wordpress-{{ wordpress_version }}.tar.gz"
dest: "{{ wordpress_version }}/wordpress-{{ wordpress_version }}.tar.gz"
force : no
- name: Extract archive
tags:
- wordpress
- wordpress:install
unarchive:
src: "{{ www_docroot }}/wordpress-{{ wordpress_version }}.tar.gz"
dest: "{{ www_docroot }}"
creates : "{{ www_docroot }}/wordpress"
remote_src: True
关于wordpress - 使 `get_url` 和 `unarchive` ansible 命令幂等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364340/