在不进行检查的情况下运行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 被经常使用。
在执行应用检查时,
本来应该在验证环境中进行,
但在生产环境中进行检查更加方便,还能确认环境差异,非常方便。

然而,由于是在实际环境中进行操作,如果输错命令的话,就会像前面提到的那样不经意地应用它。(毕竟人总会犯错,就算是复制粘贴也会出错)

我思考着有没有办法来阻止这个,然后创造出了这个方法。

如果思考一下,可能会有更好的方法。

bannerAds