私が走ると:
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
...しかし、効果はありませんでした。 (フレッド・ザ・マジック・ワンダー・ドッグ 提案 に感謝します。)
また、非対話型シェルが出力を生成しないようにしました ここで提案されているとおり 。
これが私がやったことです:
/etc/ansible/ansible.cfg
を~/.ansible.cfg
にコピーしました~/.ansible.cfg
を編集しました。#scp_if_ssh = False
をscp_if_ssh = True
に変更しましたssh_args =
を[ssh_connection]
セクションに追加しました。-c SSH
フラグを使用してコマンドを実行しましたフレッド・ザ・マジック・ワンダー・ドッグ に私を正しい方向に向けてくれてありがとう。
はい、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