Hi,
I’m trying to add an ssh key to all my servers via the authorized_keys command but it doesn’t seem to look in the usual places (i.e the role directory(s)). Here’s my code
`
- name: Install SSH keys
authorized_key: user=vagrant key="{{ item }}"
with_file:
- id_rsa.pub
Enter code here…
`
And my directory structure is:
/-roles
/-- disco
/---- files
/----- id_rsa.pub
/---- tasks
/----- main.yml
/- disco.yml
And the error on the terminal (with -vvvv):
TASK: [disco | Install SSH keys] **********************************************
fatal: [default] => could not locate file in lookup: id_rsa.pub
FATAL: all hosts have already failed – aborting
It seems that the authorized_keys does not look in the same folders as ‘copy’, for example.
Thanks
James
authorized_key seems to look in ./ssh
have you tried to import your file in vars_files?
Sorry bit of a noob how would this solve the problem? From my understanding authorized_keys ‘key’ takes either a string (of the key) or a url to the key file. Wouldn’t having it in vars_file just be specifying the URL in a different place?
Also this means I have to specify this at the host level not the role level which in my current understanding reduces the re-usabiiity.
I’ve seen a couple of bug reports that report similar problems but they all end in “patch merged” and I’m definitely on the latest stable release of ansible…
Thanks
what i mean is that in your main playbook (the one which trigger the roles) you have the following:
vars_files:
because my understanding of your problem is that you need to access to keys stored as jinja variables in the file right?