本地jenkins与VPC ec2实例的连接

时间:2015-02-23 10:17:33

标签: amazon-web-services ssh jenkins amazon-ec2

我在公司网络中有一台jenkins服务器。需要使用jenkins ec2插件旋转EC2实例。在给出访问权限,秘密密钥和AMI Id之后,我的印象是,为ssh端口22打开安全组(它是一个linux映像)。我可以将ec2实例连接为slave。但它的投掷低于错误。

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实例。我只能看到jenkins尝试使用私有ip访问。我在vpc中给出了一个子网ID。 jenkins或VPC中需要更改的任何设置?

此致 阿希什

2 个答案:

答案 0 :(得分:0)

好吧,我想我弄明白了。

要使插件正常工作,您需要默认VPC 。我删除了所有默认的VPC,因为我在开始时错误地认为让它保持运行会花费我的成本。

默认VPC的结果似乎是公共DNS附加到在该默认VPC中启动的实例。我可能错误地认为只有默认的VPC会这样做(可能有一个我必须发现的设置,以便VPC自动分配公共DNS),但无论如何,公众DNS仅在使用默认VPC的设置中添加到我的服务器。而且似乎插件的后备是尝试连接到私有IP。当您查看实例的设置时,您只能看到公共DNS和私有IP的输入字段 - 而不是公共IP。

一旦我完成了这一切,一切都正确地旋转了。

那么,在删除你的VPC之后,又如何再次获得默认的VPC?嗯,一般来说,有两种选择:

  1. 您注册了一个新帐户。这是最简单的,但当然,您会获得一个新帐户。
  2. 您可以查看https://aws.amazon.com/premiumsupport/knowledge-center/deleted-default-vpc/,查看AWS的程序,以便为您提供默认的VPC。
  3. 我现在基本上是第一个选择。

    希望这有帮助!

答案 1 :(得分:0)

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

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

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

这是使用 Amazon EC2 plugin 的 1.56 版和 Jenkins 2.263.1 版