通过詹金斯用户的Ansible剧本

问题描述

我正试图从詹金斯那里打电话给我的Ansible剧本。但是每次我这样做,我都会因为公共密钥错误而被拒绝访问。 我的目标是将剧本从本地计算机推送到GC VM。

事实:

  1. Ansible和jenkins安装在同一台计算机上
  2. 我的GC VM实例密钥在/home/govind/Desktop/splukinstancekey.pem路径中。这是在我的主要用户(“ govind”)中。
  3. 在詹金斯大学,我已经使用ssh-keygen生成了一个RSA密钥,并将其添加到用户“ govind” .ssh / authorized_keys中。这样我就可以从jenkins用户到govind用户(安装ansible的地方)建立连接。

问题是,每当我从jenkins用户运行剧本时,都会引发以下错误:

任务[聚会事实] ********************************************** ****************************************************** **************************** 致命的:[34.71.8.168]:难以置信! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:加载密钥“ /home/govind/Desktop/splunkinstancekey.pem”:许可被拒绝\ r \ nubuntu@34.71.8.168:许可被拒绝(公钥)。“,”无法访问“:true} 致命的:[35.223.166.86]:难以置信! => {“已更改”:false,“ msg”:“无法通过ssh连接到主机:加载密钥“ /home/govind/Desktop/splunkinstancekey.pem”:许可被拒绝\ r \ nubuntu@35.223.166.86:许可被拒绝(公钥)。”,“无法访问”:true}

从用户“ govind”开始,我可以通过ansible命令轻松地对远程服务器执行ping操作。谁能帮助我了解jenkins用户可能缺少的差距。 我了解jenkins无法访问pem文件,因为它不属于该文件。从其他各种帖子中,我读到jenkins在安装了ansible的情况下与用户建立联系,然后执行该剧本。但无法取得任何进展。

解决方法

看来您应该从ssh故障排除的角度来解决这个问题。听起来您正在尝试从jenkins框切换到govind框。因此,使用生成的密钥对,需要将公共密钥放在ubuntu用户下的govind框中的authorized_keys下。即-因为发生错误,您以ubuntu用户的身份(-ubuntu@34.71.8.168来回切换。这样一来,您应该可以像ubuntu用户那样从jenkins框切换到govind框。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...