web-dev-qa-db-ja.com

sshとAnsibleに関する問題

scriptアクションを使用して)ansibleタスクを実行すると、次のエラーメッセージが表示されます。

stderr: OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 2
Shared connection to 10.0.2.222 closed.

現在、このホストの前に同じホストをターゲットとするタスクがたくさんあり、それらはすべて正常に動作します。クライアントはDebianであるため、クライアントであることがわかります。プロビジョニングされるのはCentosです。

このエラーメッセージを調べてみたところ、私は(私の悔しさに)自分が得たものは、通常、他の問題に関する長いメッセージの最初の部分であることを発見しました。追加してみた

Host 10.0.2.222
  ControlMaster no

私の/etc/ssh/ssh_configこの質問 のせいで、絶望的でしたが、うまくいきませんでした。何が問題だったのか本当にわかりません。最も可能性の高い犯人が何であるかを理解するためにSSHがどのように機能するかについて、私は十分に知りません。

5
Parthian Shot

これにより、質問で言及された問題が修正されました(ssh接続にはまだ問題がありますが、それは別の質問です)。

デフォルトでは、ansibleはssh_configオプションをオーバーライドするオプションをいくつか追加します。具体的には、以下を追加します。

-o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/devel/.ansible/cp/ansible-ssh-%h-%p-%r"

-vvvansible-playbookと組み合わせて使用​​することでそれを理解しました。

ssh_args[ssh_connection]セクションで.ansible.cfgを指定することで、これらのオプションを修正/上書きできます ここ 。また、注目に値するのは、名前から推測できることとは逆に、ssh_argsを変更しても、実際にはすべての引数が変更されるわけではないということです。 Ansibleは-C -tt -v -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o ConnectTimeout=10およびその他のオプション(例:-o PasswordAuthentication=no -o User=root)も渡します。これらの一部は単に不変のデフォルトであり、一部はPlaybookで指定した変数に依存します。

5
Parthian Shot