Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to tell ansible not to use ~/.ssh/config?

Tags:

ssh

ansible

My ~/.ssh/config file is interfering with ansible, I use a lot of abbreviations in there to make my life easier when logging onto servers.

for example in:

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

In my ansible hosts file I have:

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

which means when I run ansible, the connection will fail because it will use my ssh config file and try to connect to te1.example.com.example.com.

I know I could modify ansible hosts to just be te1 and let ssh config add the rest of the domain, but I know that other members of my team don't have their .ssh/config set up like me so this isn't really an option, and tbh is the easy route which will end up causing problems for others.

Is there a way in ansible to tell it not to use mine or anyone else .ssh/config file?

like image 523
user3925030 Avatar asked Jan 14 '19 11:01

user3925030


1 Answers

You can use the ANSIBLE_SSH_ARGS parameter in ansible.cfg for that. The required ssh parameter is -F configfile which has the following meaning:

-F configfile

Specifies an alternative per-user configuration file. If a configuration file is given on the command line, the system-wide configuration file (/etc/ssh/ssh_config) will be ignored. The default for the per-user configuration file is ~/.ssh/config.

So your ANSIBLE_SSH_ARGS with the defaults in in ansible.cfg would then look like this:

ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -F /dev/null
like image 133
JGK Avatar answered Nov 06 '22 21:11

JGK