При запуске недоступной задачи (с script
действие), я получаю это сообщение об ошибке:
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, чтобы даже понять, что может быть наиболее вероятным виновником.
Это устранило проблему, упомянутую в вопросе (проблемы с ssh-соединением все еще существуют, но это уже другой вопрос).
По умолчанию ansible добавляет некоторые параметры, которые отменяют ssh_config
параметры. В частности, он добавляет:
-o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/devel/.ansible/cp/ansible-ssh-%h-%p-%r"
Выяснили это, используя -vvv
с участием ansible-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.