我正在尝试使用jenkins中的ssh代理模块以我的身份登录到远程计算机上...并运行一些lxc命令。 我没有登录任何错误,但...取决于我运行的命令,我要么得到不同的结果或权限被拒绝错误。
这个pastebin将显示我从Jenkins获得的输出 http://pastebin.com/VxPHYzf9
在示例1中,我正在尝试运行lxc命令,但它失败了。 在示例2中,我运行rc-status,期望看到正在运行的容器列表,但我得到了完全不同的东西。
到目前为止我尝试过:
当我以“johndoe”用户手动ssh进入lxc主机时,我可以运行这两个命令没问题。 我还在lxc上“监视”了一个日志文件,显示正在登录的ssh指纹...我可以看到,当jenkins执行构建时,它以“johndoe”身份登录。
我创建了一个“jenkins”用户/ ssh密钥对,并尝试使用它。我得到了相同的结果。
我试过的最后一个测试没有在pastebin中显示,只是在lxc主机的tmp文件夹上运行“ls -lah”,我知道我有一些bash文件。
当我更改构建以运行这些命令时:
whoami
ssh -AtT root@10.111.11.11
ls -lah /tmp/*.sh
我再次得到这些结果,完全错误:
+ whoami
jenkins
+ ssh -AtT root@10.111.11.11
********************************* ATTENTION **********************************
* Unauthorized access prohibited. Activity is logged. *
******************************************************************************
15:13:25 up 23 days, 19:33, 0 users, load average: 0.11, 0.07, 0.11
+ ls -lah /tmp/hudson3065491328414451721.sh
-rw-r--r-- 1 jenkins jenkins 52 Jun 10 11:13 /tmp/hudson3065491328414451721.sh
[ssh-agent] Stopped.
Finished: SUCCESS
我至少有3个sh文件...而且我不知道hudson * .sh文件是什么。
最终,我需要Jenkins能够登录lxc主机并运行一堆命令作为构建的一部分。
任何帮助将不胜感激。
我也将尝试将构建ssh到另一台机器中,看看我是否得到不同的结果。
答案 0 :(得分:0)
我明白了。
看起来我的错误是将远程服务器的所有shell命令放在不同的行上。 例如,在构建"执行Shell"文本框我有这样的事情:
ssh -A root@10.1.1.1
whoami
ls -lah /tmp/*.sh
它正在做的是登录远程服务器,然后在我的LOCAL jenkins服务器上运行其他两个命令。
所以我将shell命令更改为:
ssh- A root@10.1.1.1 'ls -lah'
现在它正在工作。