我是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
条目。