DigiLoog

PC関係の事なら何でもいけるそんな処

仮想サーバを複製したらAnsibleが不安定になった

2022年01月15日(土) - 21:37 | カテゴリ: 雑談

本番稼働中の自鯖インスタンスをテスト環境にコピーしながらAnsibleで操作していた時、
何故かAnsibleから操作出来たり出来なかったりと不安定になった。

Ansibleサーバ Rocky Linux 8.5 Ansible 2.9.27
Ansibleクライアント openSUSE Leap 15.3 OpenSSH 8.4p1

Ansibleのデバッグログも出力したがunreachableとしか表示されなかった。
実際にSSHで接続すると問題無く接続出来た為、認証鍵が怪しいと判断。
でも、クライアント側で利用しているOpenSSH鍵を作り直したり、
逆に稼働中の物と同じにしても繋がらずお手上げだった。

最終的にパケットキャプチャやカーネルトレースもしたのだが理由がわからず、
ググりつつ試行錯誤したら次の記事に遭遇。

ここでピンと来た。

自鯖のAnsibleはサーバ操作を高速化する為にMultiplexingを有効にしていた。
Multiplexingは指定ディレクトリにSSH接続用のソケットを作成し、
初回はソケット作成して以後のSSHはソケット経由で通信してオーバーヘッドを減らす機能となる。

今回はこのソケット接続が不安定になりSSH出来なくなっていると推測し、
同様の動きをするOpenSSHのControlMasterを弄って接続状況を再現した所、
Ansibleを叩いた時同様に対象サーバに繋がらない状況を再現出来た。

……

原因が判明したからチューニングが簡単というわけでもなく、
Multiplexingを有効にした状態で安定させられないか格闘。
しかし、機能を有効にした状態では安定させられず、最終的にMultiplexingを無効化した。
今回の事象は珍しいかもしれないが、今後再発した時の為にメモしておく。





  • 応援中

    はじめるセカイの理想論 -goodbye world index-