【问题标题】:Local jenkins connection with VPC ec2 instanse与 VPC ec2 实例的本地 jenkins 连接
【发布时间】:2015-04-24 15:15:58
【问题描述】:

我在公司网络中有一个 jenkins 服务器。需要使用 jenkins ec2 插件来旋转 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 进行访问。自从它在 vpc 中以来,我已经给出了一个子网 ID。 jenkins 或 VPC 中的任何设置需要更改吗?

问候, 阿什什

【问题讨论】:

  • 可以手动ssh到主服务器,然后ssh到从服务器吗?它们是否在同一个 VPC 中,您的安全组设置是否正确?
  • 我在这里面临同样的问题。服务器没有任何问题,只是插件强制 Jenkins 在私有 IP 上连接。我找到了这张票:issues.jenkins-ci.org/browse/JENKINS-19943 状态已解决,但似乎没有。作为参考,我没有使用默认 VPC。

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


【解决方案1】:

好的,我想我想通了。

要使插件正常工作,您需要有一个默认 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 的过程。

我现在基本上选择了第一个选项。

希望这会有所帮助!

【讨论】:

  • 您可以将公有 DNS 附加到公有子网中的任何实例,无论它是否位于默认 AWS VPC 中。 “公共”子网的先决条件是它有一条通往互联网的路由,因此可以公开访问。
  • 这个答案实际上在几个方面是不正确的,所以不要根据这个答案做出设计决策。 1)只要实例位于可路由的子网中,您就可以针对任何 VPC 运行插件(请参阅 Franchise 的评论),2)公共 DNS 指向公共 IP,因此该部分是红鲱鱼(您可以在插件配置中使用任何一种) )。如果配置正确,使用标准(非默认)VPC 效果很好
【解决方案2】:

当我将“连接策略”设置从 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 版

【讨论】:

    猜你喜欢
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2020-07-13
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    相关资源
    最近更新 更多