【发布时间】:2020-09-12 23:45:15
【问题描述】:
我正在尝试从 jenkins 调用我的 Ansible 剧本。但是每次我这样做时,我都会因公钥错误而被拒绝。 我的目标是将剧本从本地机器推送到 GC VM。
事实:
- Ansible 和 jenkins 安装在同一台机器上
- 我的 GC VM 实例密钥位于 /home/govind/Desktop/splukinstancekey.pem 路径中。这是我的主要用户(“govind”)。
- 在 jenkins 中,我使用 ssh-keygen 生成了一个 RSA 密钥,并在用户“govind”.ssh/authorized_keys 中添加了相同的密钥。所以我能够建立从 jenkins 用户到 govind 用户的连接(安装了 ansible)。
问题是每当我从 jenkins 用户运行 playbook 时,都会抛出以下错误:
任务[收集事实] ****************************************** ****************************************************** ****************************** 致命:[34.71.8.168]:无法访问! => {"changed": false, "msg": "无法通过 ssh 连接到主机:加载密钥 "/home/govind/Desktop/splunkinstancekey.pem": Permission denied\r\nubuntu@34.71.8.168: Permission拒绝(公钥)。”,“无法访问”:true} 致命:[35.223.166.86]:无法访问! => {"changed": false, "msg": "无法通过 ssh 连接到主机:加载密钥 "/home/govind/Desktop/splunkinstancekey.pem": Permission denied\r\nubuntu@35.223.166.86: Permission拒绝(公钥)。”,“无法访问”:true}
从用户“govind”,我可以通过 ansible 命令轻松 ping 远程服务器。谁能帮助我了解詹金斯用户可能缺少什么差距。 我知道詹金斯无法访问 pem 文件,因为它不属于它。从其他各种帖子中,我读到 jenkins 与安装了 ansible 的用户建立连接,然后执行该剧本。但无法取得任何进展。
【问题讨论】: