I'm trying to run my Ansible playbook on a remote server using a provided ssh key.
I have added the following configuration to my inventory file:
all:
hosts:
server1:
ansible_host: sample.server@noname.com
dest_dir: /root
sample_tree: sample_tree.txt
private_key_file: ../config/id_rsa_tf
I have referenced it in my playbook using the following:
- name: "Nightly Deploy"
hosts: server1
remote_user: sysuser
tasks:
- name: Copy test from local to remote
tags:
- copy
- all
copy:
src: "test.tgz"
dest: "{{ dest_dir }}/test.tgz"
I am running the playbook with the following command:
ansible-playbook --tags="copy" -v -i inventories/nightly-build.yaml playbooks/nightly-build.yaml
The error I'm getting is the following:
fatal: [server1]: UNREACHABLE! => {"changed": false, "msg": "Failed to
connect to the host via ssh: Permission denied (publickey,gssapi- keyex,gssapi-with-mic,password).", "unreachable": true}
Is my private_key_file
wrong in my inventory file or am I calling it wrong? and help would be great
This error usually occurs when there is no valid public and private key generated and setup.
Try any of the following approaches:
[defaults]
private_key_file = /Users/username/.ssh/private_key
vars:
ansible_ssh_private_key_file: "/home/ansible/.ssh/id_rsa"
ansible-playbook -vvvv --private-key=/Users/you/.ssh/your_key playbookname.yml