在不进行检查的情况下运行ansible-playbook的保险措施
总结
我本打算在测试中运行ansible-playbook,结果不小心忘记了添加–check选项,不小心应用了!
我会介绍一些避免这种事故的小技巧。
目标读者
-
- Ansible で自動化を進めている方
-
- ansible-playbook の本番適用時に確認 STEP を入れたい方
- 自分のメモ用
Ansible-playbook 是什么?
Ansible是一种构建管理工具,可以自动构建服务器等。
为了使用这个,需要使用基于Python和YAML的特殊语法来编写代码。
ansible-playbook 是用于执行 Ansible 应用操作的命令行界面 (CUI) 命令。
详细
解释
在应用到生产环境中的ansible-playbook中,这是一个机制,用于提供确认信息并在意外执行时终止操作。
具体而言,在”Pause”模块中暂停应用,并显示常见的”是否要应用”的确认文案。
只有用“是”回答这个问题,才会继续进行后续处理。
其他的回答会导致强制终止,进入失败模块。
示例代码
# check 無しで実行した場合は確認文を出す
- name: confirm running
pause:
prompt: >-
適用するなら yes, 終了するなら yes 以外を入力してください
◆ check mode ではありません!
register: result1
when: not ansible_check_mode
# 確認に対する入力が yes 以外なら終了する
- name: abort running
fail:
msg: "Task is aborted"
when: (not ansible_check_mode) and (result1.user_input != 'yes')
run_once: yes
最后的话
在我的工作现场,Ansible 被经常使用。
在执行应用检查时,
本来应该在验证环境中进行,
但在生产环境中进行检查更加方便,还能确认环境差异,非常方便。
然而,由于是在实际环境中进行操作,如果输错命令的话,就会像前面提到的那样不经意地应用它。(毕竟人总会犯错,就算是复制粘贴也会出错)
我思考着有没有办法来阻止这个,然后创造出了这个方法。
如果思考一下,可能会有更好的方法。