【问题标题】:Ansible playbook via jenkins user来自 jenkins 用户的 Ansible 剧本
【发布时间】:2020-09-12 23:45:15
【问题描述】:

我正在尝试从 jenkins 调用我的 Ansible 剧本。但是每次我这样做时,我都会因公钥错误而被拒绝。 我的目标是将剧本从本地机器推送到 GC VM。

事实:

  1. Ansible 和 jenkins 安装在同一台机器上
  2. 我的 GC VM 实例密钥位于 /home/govind/Desktop/splukinstancekey.pem 路径中。这是我的主要用户(“govind”)。
  3. 在 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 的用户建立连接,然后执行该剧本。但无法取得任何进展。

【问题讨论】:

    标签: jenkins ssh ansible


    【解决方案1】:

    您似乎应该从 ssh 故障排除的角度来处理这个问题。听起来你正试图从你的詹金斯盒子 ssh 到 govind 盒子。因此,使用您生成的密钥对,您需要将公钥放在ubuntu 用户下的govind 框上的authorized_keys 下。即-因为在您的错误中,您是以 ubuntu 用户的身份 sshing - ubuntu@34.71.8.168。然后,您应该能够以 ubuntu 用户身份从 jenkins 框 ssh 到 govind 框,就像您尝试做的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多