AnsibleでCentOS 7を再起動するにはどうすればいいですか? 質問する

AnsibleでCentOS 7を再起動するにはどうすればいいですか? 質問する

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 接続自体を閉じるのに十分な時間が与えられ、現在発生しているエラーを回避できるようになります。

おすすめ記事