如何保证command/shell的幂等性
# 为了实现幂等性,您可以使用属性creates 。 如果存在,Ansible将仅在模式指定的文件不存在时运行命令任务。
# 您可以使用removes ,它仅在指定的文件存在时才执行任务。
- command : /usr/bin/create-database.sh creates = /path/to/database
change_when 和 faild_when
# 使用change_when 和 faild_when来改变task是changed还是faild的认定;
# 首先我们需要了解第一次、第二次运行结果状态;
# 奔跑吧ansible P120
# 案例:
- name: initialize the database
djiango_manage:
command: createdb --noinput --nodata
app_path: "{{ proj_path }}"
virtualenv: "{{ venv_path }}"
registeer: result
change_when: not result.failed and "creating tables" in result.out
failed_when: result.failed and "Database already created" not in result.msg
网友评论