原因
自分が経験したAnsibleスタックの原因
- Ansibleリモートホストから入力を求められている
shellでコマンドを実行すると陥りがち.moduleをちゃんと使用してTASKを構成していると回避できる可能性が高い
apt-get upgradeでのy/n,copyなどのoverwriteでy/nが表示されていることがで止まる解決策
yの標準入力を渡す or moduleを使用するshell: echo y | apt-get upgrade
- become_passとssh-addのトラブル
ssh-agentが起動していないことが原因して,gathering factでずっと止まっている
解決策$ eval `ssh-agent` $ ssh-add ~/.ssh/id_rsa
- Ansibleリモートホストから入力を求められている & Ansibleクライアントから入力を続けている
reboot module+ubuntu 22.04で発生した問題で,reboot後のbecome: yes時にパスワード入力を求められた際にreboot moduleがup timeを入力を続けることで,スタックしてしまった.
コネクション自体は成功しており,moduleも動き続けているためconnection timeoutやmodule timeoutには該当せずに処理が続いてしまった
moduleのバージョンを上げると解決した
特定方法
- -vvvのオプション: 実行時に指定することで詳細情報の表示
- debug strategy:Ansibleのstrategy pluginの変更
- debugger:Ansible実行時の変数の確認が可能
- ANSIBLE_DEBUG=true ansible-playbook -i ~:Ansibleクライアントの実行ログのデバッグ用
参考
https://qiita.com/sshojiro/items/60982f06c1a0ba88c160