Ansible playbook 要写成幂等的,重复执行不产生副作用

拿 shell 直跑命令最危险,第二次执行还会再改一遍。

优先换成内置模块,像 file、copy、service 会先比对状态。

非要用命令就加 creates 或 changed_when 条件,让它知道自己做没做。

执行前跑 check 模式看变更清单,重复跑一遍应为零变更才算合格。

# 反例:每次跑都会 report changed
- shell: mkdir -p /data/app

# 幂等写法:有则跳过
- file: { path: /data/app, state: directory }

# 命令类任务加条件
- command: /usr/local/bin/init-db
  args: { creates: /var/lib/app/db.initialized }

# 验证:重复执行应为 0 changed
ansible-playbook site.yml --check --diff
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容