如何使用 public ssh 密钥 运行 Ansible Playbook
How to Run Ansible Playbook using a public ssh key
我正在尝试使用提供的 ssh 密钥 运行 我在远程服务器上的 Ansible 剧本。
我已将以下配置添加到我的清单文件中:
all:
hosts:
server1:
ansible_host: sample.server@noname.com
dest_dir: /root
sample_tree: sample_tree.txt
private_key_file: ../config/id_rsa_tf
我在我的剧本中使用以下内容引用了它:
- 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"
我正在 运行使用以下命令设置剧本:
ansible-playbook --tags="copy" -v -i inventories/nightly-build.yaml playbooks/nightly-build.yaml
我得到的错误如下:
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}
我的 private_key_file
是我的库存文件有误还是我调用错了?帮助会很大
此错误通常发生在没有有效的 public 和私钥生成和设置时。
尝试以下任一方法:
Create/edit 你的 ansible.cfg 文件在你的剧本目录中,并为你的密钥的完整路径添加一行:
[defaults]
privatekeyfile = /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
我正在尝试使用提供的 ssh 密钥 运行 我在远程服务器上的 Ansible 剧本。
我已将以下配置添加到我的清单文件中:
all:
hosts:
server1:
ansible_host: sample.server@noname.com
dest_dir: /root
sample_tree: sample_tree.txt
private_key_file: ../config/id_rsa_tf
我在我的剧本中使用以下内容引用了它:
- 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"
我正在 运行使用以下命令设置剧本:
ansible-playbook --tags="copy" -v -i inventories/nightly-build.yaml playbooks/nightly-build.yaml
我得到的错误如下:
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}
我的 private_key_file
是我的库存文件有误还是我调用错了?帮助会很大
此错误通常发生在没有有效的 public 和私钥生成和设置时。
尝试以下任一方法:
Create/edit 你的 ansible.cfg 文件在你的剧本目录中,并为你的密钥的完整路径添加一行:
[defaults] privatekeyfile = /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