本地jenkins与VPC ec2 instanse的连接



我在公司网络中有一台詹金斯服务器。需要使用jenkinsec2插件旋转EC2实例。我的印象是,在提供了访问权限、密钥和AMI Id之后,打开了ssh端口22的安全组(它是一个linux映像)。我将能够连接ec2实例作为从属实例。但它的投掷失误。

Connecting to 172.30.0.204 on port 22, with timeout 10000.
Waiting for SSH to come up. Sleeping 5.
Connecting to 172.30.0.204 on port 22, with timeout 10000.
Waiting for SSH to come up. Sleeping 5.
Connecting to 172.30.0.204 on port 22, with timeout 10000.
Waiting for SSH to come up. Sleeping 5.
Connecting to 172.30.0.204 on port 22, with timeout 10000.
Waiting for SSH to come up. Sleeping 5.
Connecting to 172.30.0.204 on port 22, with timeout 10000

我可以使用本地机器上的公共ip连接ec2实例。我所能看到的只是詹金斯试图使用私人ip访问。我已经给出了一个子网id,因为它在vpc中。jenkins或VPC中有任何需要更改的设置吗?

谨致问候,Ashish

好吧,我想我想通了。

为了使插件正常工作,您需要有一个默认VPC。我删除了所有默认的专有网络,因为一开始我错误地认为保持它们的运行会花费我的钱。

默认VPC的结果似乎是在该默认VPC中启动的实例上附加了一个公共DNS。我可能误解了只有默认VPC才能做到这一点(也许我还需要发现一个设置,让VPC自动分配一个公共DNS),但无论如何,在使用默认VPC的设置中,公共DNS只添加到我的服务器中。插件的后备方案似乎是尝试连接到私有IP。当你查看实例的设置时,你只看到公共dns和私有ip的输入字段,而不是公共ip。

一旦我把它排除在外,一切都运转正常。

那么,在删除了自己的专有网络后,如何重新获得默认的专有网络呢?一般来说,有两种选择:

  1. 您注册了一个新帐户。这是最简单的,但当然,你会得到一个新帐户
  2. 你可以看看https://aws.amazon.com/premiumsupport/knowledge-center/deleted-default-vpc/,查看AWS返回默认VPC的过程

目前,我基本上选择了第一个选项。

希望这能有所帮助!

我遇到了一个类似的问题,当我将"连接策略"设置从Private IP更改为Public IP时,这个问题得到了解决。这个设置可以在Jenkins中找到,导航通过:

-Manage Jenkins
  -Manage Nodes and Clouds
    -Configure Clouds
      -Amazon EC2 Configuration
        -Advanced
          -Connection Strategy

Private IP似乎是默认值,因此将其更改为公共连接策略之一应该会导致尝试通过公共IP连接到EC2实例。

这是使用亚马逊EC2插件的1.56版本和Jenkins 2.263.1版本

最新更新