authorized_keys not looking in role 'files' directory for files

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:

  • /path/to/your/file

because my understanding of your problem is that you need to access to keys stored as jinja variables in the file right?