我如何使用ansible来推送带有SSH密钥身份验证的剧本



我是ansible的新手,尝试将剧本推送到我的节点。我想通过ssh密钥进行推送。这是我的战术手册:

- name: nginx install and start services
hosts: <ip>
vars:
ansible_ssh_private_key_file: "/path/to/.ssh/id_ed25519"
become: true
tasks:
- name: install nginx
yum:
name: nginx
state: latest

- name: start service nginx
service:
name: nginx
state: started

这是我的库存:

<ip> ansible_ssh_private_key_file=/path/to/.ssh/id_ed25519

在我推之前,我检查它是否工作:ansible-playbook -i /home/myuser/.ansible/hosts nginx.yaml --check

它给了我:fatal: [ip]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: user@ip: Permission denied (publickey,password).", "unreachable": true}

在那个服务器上,我没有root权限,我不能做sudo。这就是为什么我在主目录中使用自己的库存。到我想推送nginx剧本的目标节点,我可以进行SSH连接并执行登录。公钥位于/home/user/.ssh/id_ed21519.pub 中的远程服务器上

我错过了什么?

根据文档将/etc/ansible/assible.cfg复制到运行nginx.yaml剧本的目录中或其他位置:https://docs.ansible.com/ansible/latest/reference_appendices/config.html#ansible-配置设置位置

然后编辑该文件以更改此行:

#private_key_file = /path/to/file

阅读:

private_key_file = /path/to/.ssh/id_ed25519

同时检查远程user_user条目。

相关内容

  • 没有找到相关文章

最新更新