原因

自分が経験したAnsibleスタックの原因

  1. Ansibleリモートホストから入力を求められている
    shellでコマンドを実行すると陥りがち.moduleをちゃんと使用してTASKを構成していると回避できる可能性が高い
    apt-get upgradeでのy/n,copyなどのoverwriteでy/nが表示されていることがで止まる

    解決策
    yの標準入力を渡す or moduleを使用する

    shell: echo y | apt-get upgrade
    
  2. become_passとssh-addのトラブル
    ssh-agentが起動していないことが原因して,gathering factでずっと止まっている
    解決策

    $ eval `ssh-agent`
    $ ssh-add ~/.ssh/id_rsa
  3. Ansibleリモートホストから入力を求められている & Ansibleクライアントから入力を続けている
    reboot module+ubuntu 22.04で発生した問題で,reboot後のbecome: yes時にパスワード入力を求められた際にreboot moduleがup timeを入力を続けることで,スタックしてしまった.
    コネクション自体は成功しており,moduleも動き続けているためconnection timeoutやmodule timeoutには該当せずに処理が続いてしまった
    moduleのバージョンを上げると解決した

 

特定方法

  1. -vvvのオプション: 実行時に指定することで詳細情報の表示
  2. debug strategy:Ansibleのstrategy pluginの変更
  3. debugger:Ansible実行時の変数の確認が可能
  4. ANSIBLE_DEBUG=true ansible-playbook -i ~:Ansibleクライアントの実行ログのデバッグ用

参考

https://qiita.com/sshojiro/items/60982f06c1a0ba88c160

コマンドの途中で聞いてくる yes を自動入力したい?それ yes で出来るよ