VirtualBox で実行されているサーバーを再起動しようとしていますCentOS 7
。次のタスクを使用します:
- name: Restart server
command: /sbin/reboot
async: 0
poll: 0
ignore_errors: true
サーバーは再起動されましたが、次のエラーが発生します:
TASK: [common | Restart server] ***********************************************
fatal: [rolcabox] => SSH Error: Shared connection to 127.0.0.1 closed.
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
FATAL: all hosts have already failed -- aborting
何が間違っているのでしょうか? どうすれば修正できますか?
ベストアンサー1
おそらく、本当に間違ったことをしているわけではなく、/sbin/reboot がサーバーを非常に速くシャットダウンするため、Ansible 自体が閉じる前に、サーバーが Ansible が使用する SSH 接続を切断しているだけです。その結果、Ansible は、予期しない理由で SSH 接続が失敗したと判断し、エラーを報告しています。
これを回避するには、 の使用から の使用/sbin/reboot
に切り替えるのが/sbin/shutdown
よいでしょう。shutdown コマンドを使用すると時間を経過でき、スイッチと組み合わせると、-r
実際にシャットダウンするのではなく、再起動を実行します。そのため、次のようなタスクを試してみるとよいでしょう。
- name: Restart server
command: /sbin/shutdown -r +1
async: 0
poll: 0
ignore_errors: true
これにより、サーバーの再起動が 1 分間遅延されますが、これにより Ansible に SSH 接続自体を閉じるのに十分な時間が与えられ、現在発生しているエラーを回避できるようになります。