web-dev-qa-db-ja.com

Ansibleを機能させるには、管理対象ノードでSSH SFTPサブシステムが必要ですか?

私が走ると:

ansible all -a "/bin/echo hello" -u myuser

私は戻ります:

mydomain.myhost.com | FAILED => failed to open a SFTP connection (Channel closed.)

接続しようとしている管理対象ノードでSFTPサブシステムが無効になっています。

SFTPは管理対象ノードで必要ですか?Ansibleのドキュメントでは特にSFTPについて言及していません: http://docs.ansible.com/ intro_installation.html#managed-node-requirements

Ansible.cfgで この値 を設定してみました:

scp_if_ssh=True

...しかし、効果はありませんでした。 (フレッド・ザ・マジック・ワンダー・ドッグ 提案 に感謝します。)

また、非対話型シェルが出力を生成しないようにしました ここで提案されているとおり

7
braveterry

これが私がやったことです:

  1. /etc/ansible/ansible.cfg~/.ansible.cfgにコピーしました
  2. ~/.ansible.cfgを編集しました。
  3. #scp_if_ssh = Falsescp_if_ssh = Trueに変更しました
  4. ssh_args =[ssh_connection]セクションに追加しました。
  5. -c SSHフラグを使用してコマンドを実行しました

フレッド・ザ・マジック・ワンダー・ドッグ に私を正しい方向に向けてくれてありがとう。

4
braveterry

はい、ansibleはリモートマシンにファイルを転送できるかどうかに依存します。デフォルトでは、sftpを使用してこれを行います。これを上書きしてscpを使用することができます

scp_if_ssh
Occasionally users may be managing a remote system that doesn’t have SFTP enabled. If set to True, we can cause scp to be used to transfer remote files instead:

scp_if_ssh=False
There’s really no reason to change this unless problems are encountered, and then there’s also no real drawback to managing the switch. Most environments support SFTP by default and this doesn’t usually need to be changed.

上記の情報はこのページから取得されました:

http://docs.ansible.com/intro_configuration.html#openssh-specific-settings