Можно ли сказать ansible не использовать ~ / .ssh / config? - PullRequest
0 голосов
/ 14 января 2019

Мой ~/.ssh/config файл мешает работе с ansible, я использую множество сокращений, чтобы упростить мою жизнь при входе на серверы.

например в:

Host te*
     HostName %h.example.com
     User test

В моем файле ansible hosts у меня есть:

[servers]
te1.exmaple.com
te2.example.com

, что означает, что когда я запускаю ansible, соединение не будет установлено, поскольку оно будет использовать мой конфигурационный файл ssh и попытаться подключиться к te1.example.com.example.com.

Я знаю, что мог бы изменить ANSI хосты, чтобы они были просто te1, и позволить ssh config добавить оставшуюся часть домена, но я знаю, что другие члены моей команды не имеют своих настроек .ssh / config, как я, так что это не так. На самом деле это не вариант, и tbh - это простой маршрут, который в итоге вызовет проблемы у других.

Есть ли в ansible способ запретить использовать мой или любой другой файл .ssh/config?

Ответы [ 3 ]

0 голосов
/ 14 января 2019

Для этого можно использовать параметр ANSIBLE_SSH_ARGS в ansible.cfg. Обязательный параметр ssh - -F configfile, который имеет следующее значение:

-F configfile

Указывает альтернативный файл конфигурации для каждого пользователя. Если файл конфигурации дается в командной строке, для всей системы Файл конфигурации (/ etc / ssh / ssh_config) будет игнорироваться. По умолчанию файл конфигурации для каждого пользователя - ~ / .ssh / config.

Таким образом, ваш ANSIBLE_SSH_ARGS со значениями по умолчанию в ansible.cfg будет выглядеть следующим образом:

ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -F /dev/null
0 голосов
/ 14 января 2019

Это то, что сработало для меня в конце концов. Я добавил это в мой файл hosts.

[all:vars] ansible_ssh_common_args = '-F /dev/null'

Спасибо всем, кто ответил:)

0 голосов
/ 14 января 2019

ssh -F позволяет указать «альтернативный файл конфигурации для пользователя».

-F configfile Определяет альтернативный файл конфигурации для каждого пользователя. Если файл конфигурации указан в командной строке, Общесистемный файл конфигурации (/ etc / ssh / ssh_config) будет игнорироваться. По умолчанию для конфигурации пользователя файл ~ / .ssh / config.

В Ansible вы можете настроить его с помощью ANSIBLE_SSH_ARGS .

Например, в ansible.cfg вы можете установить его для любого файла, который соответствует вашим потребностям.

[ssh_connection]
ssh_args = -F ...

Или, возможно, вы захотите создать отдельного пользователя (скажем, ansible-admin ), установить ее ~ / .ssh / config и использовать его для запуска ansible.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...