Когда я бегу:
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
... но это не подействовало. (Спасибо Fred the Magic Wonder Dog за предложение.)
Я также убедился, что моя неинтерактивная оболочка не выводит никаких результатов как предлагается здесь.
Да, доступность зависит от возможности передавать файлы на удаленный компьютер. По умолчанию для этого используется 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
Вот что я в итоге сделал:
/etc/ansible/ansible.cfg
к ~/.ansible.cfg
~/.ansible.cfg
.#scp_if_ssh = False
к scp_if_ssh = True
ssh_args =
к [ssh_connection]
раздел.-c SSH
флагБлагодаря Фред Волшебный чудо-пес за то, что указал мне в правильном направлении.