OCI上的Jenkins代理节点无法部署

huwehgph  于 11个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(156)

我正在尝试使用Jenkins控制器和Oracle Cloud Infrastructure(OCI)中的代理节点部署Jenkins。我正在按照Oracle University的分步说明和视频进行操作。但是,它无法部署代理节点。下面的链接看起来与我遵循的说明非常相似:
https://reachmnadeem.wordpress.com/2019/08/22/jenkins-up-and-running-on-oracle-cloud-infrastructure-oci/
在设置OCI插件后,我确保我验证了我的凭据,Jenkins可以登录到OCI -它可以。然后我设置了一个模板,并尝试通过单击“Build Executor Status”和“Provision Oracle Cloud Infrastructure Compute”来部署代理节点。
我的模板正在尝试部署Linux代理节点。
它显示以下消息:“Started provisioning node oci-compute-8ddc 4d 29-cad 9 - 46 cd-b565-eed 7611 d 6 fc 5 with 1 executors”-但它从未实际部署任何节点。
我在这篇文章的结尾列出了Jenkins日志中的错误消息。
我发现我所做的和我遵循的说明之间的唯一区别是,说明似乎显示了旧版本的Jenkins(一个在同一页面上配置系统的新云设置,而不是自己的页面。对于模板,它要求提供ssh私钥和公钥,但当前版本的Jenkins只要求提供私钥)。
请让我知道,如果你有任何想法,如何解决或修复这个问题?我没有找到很多有用的信息,当我做搜索这个问题。

**

Provisioning new cloud infrastructure instance
Dec 16, 2020 2:47:57 AM INFO com.oracle.bmc.core.ComputeClient setEndpoint
Setting endpoint to https://iaas.us-phoenix-1.oraclecloud.com
Dec 16, 2020 2:47:57 AM WARNING com.oracle.cloud.baremetal.jenkins.BaremetalCloud$ExplicitProvisioner call
Provisioned slave jenkins-192.168.0.11-8ddc4d29-cad9-46cd-b565-eed7611d6fc5 failed!
java.lang.Exception: Instance creation fails because: null
    at com.oracle.cloud.baremetal.jenkins.client.SDKBaremetalCloudClient.createInstance(SDKBaremetalCloudClient.java:237)
    at com.oracle.cloud.baremetal.jenkins.BaremetalCloud.provision(BaremetalCloud.java:230)
    at com.oracle.cloud.baremetal.jenkins.BaremetalCloud.access$100(BaremetalCloud.java:65)
    at com.oracle.cloud.baremetal.jenkins.BaremetalCloud$Provisioner.call(BaremetalCloud.java:222)
    at com.oracle.cloud.baremetal.jenkins.BaremetalCloud$ExplicitProvisioner.call(BaremetalCloud.java:382)
    at com.oracle.cloud.baremetal.jenkins.BaremetalCloud$ExplicitProvisioner.call(BaremetalCloud.java:372)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:80)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

字符串

8nuwlpux

8nuwlpux1#

我找到了答案,所以我把它贴在这里。似乎问题是它不支持密码保护的ssh密钥。一旦我生成了一个没有密码保护的新密钥,日志中的java null错误就消失了,它部署了从节点。
我发现这一点,首先安装Jenkins再次在Oracle Linux上OCI内的从节点将生活。这个测试的目的是看看是否有任何通信问题之间的原始主和OCI。我原来的主是不是在OCI,但我试图在OCI中启动从。所以,如果主现在也在OCI和在同一个子网中,从将是,很容易排除两者之间的通信问题作为可能的原因。这次测试仍然没有部署从节点,所以这不是原因。
然后我安装了AWS EC2插件,看看是否可以将从节点部署到AWS上。我试图排除OCI插件与我运行的Jenkins版本存在bug或兼容性问题。如果这不起作用,我将降级到旧版本的Jenkins,因为我使用的是Linux发行版的最新版本。
安装AWS-EC2插件并尝试部署从节点后,它给了我一个验证我的凭据的错误,即使我是积极的,他们是正确的。我看了看Jenkins日志,它显示了一个更详细的答案-它说“密码保护的私钥不支持”。这让我想知道这是否是OCI的问题,以及。所以我生成了一个新的ssh-不受密码保护的密钥。从节点创建现在可以在AWS和OCI云上工作。
为了确保这是解决方案,我使用密码保护的密钥重复了一次测试,但又失败了。但这次我注意到OCI的错误日志也说它不支持密码保护的密钥。我回到没有密码的那个,它又工作了。所以这就是答案-不要使用密码保护的ssh密钥。
我不太确定为什么这次我在日志中得到了一个更详细的错误消息。我以为我安装的AWS插件一定与它有关。事实并非如此,因为后来我在原来的master上安装了AWS插件,它仍然给出了相同的神秘错误消息Java =。
然后,我注意到安装在Oracle Linux上的Jenkins版本是Jenkins 2.271 --比我原来的master上的版本更新(Debian/Ubuntu发行版)-Jenkins版本为2.263。Debian/Ubuntu发行版中没有更新的Jenkins版本。我使用的Ubuntu repo。一定是Jenkins的最新版本导致了更用户友好的错误消息,然后使我能够解决这个问题。我我只是幸运的是,甲骨文Linux(一个基于RedHat的发行版)的回购有更新版本的Jenkins,否则我永远不会弄清楚这一点。

相关问题