我正在本地环境中设置 Jenkins,其中 Jenkins 主节点 位于本地,并且我使用 EC2 插件 在 AWS 中按需配置 从节点。该设置旨在通过 SSH 将主节点连接到 EC2 从节点。
我可以使用从属节点的公共 IP 地址手动通过 SSH 从主节点连接到从属节点,不会出现任何问题。但是,当Jenkins尝试连接从节点时,连接失败,Jenkins中显示以下日志:
INFO: Connecting to 172.31.44.131 on port 22, with timeout 10000.
Nov 06, 2024 9:58:55 AM hudson.plugins.ec2.EC2Cloud
INFO: Failed to connect via ssh: The kexTimeout (10000 ms) expired.
Nov 06, 2024 9:58:55 AM hudson.plugins.ec2.EC2Cloud
Jenkins 似乎正在尝试使用其私有 IP 地址 (172.31.44.131) 连接到从属节点,假设从属节点与主节点位于同一本地网络上。这会导致超时,因为主服务器无法从 AWS 网络外部通过 SSH 访问 EC2 实例的私有 IP。
如何配置 EC2 插件或 Jenkins 使用 EC2 从节点的公共 IP 地址而不是私有 IP?或者,有没有办法让 Jenkins 主节点从 AWS 网络外部访问其私有 IP 上的从节点?
在“高级”下查找“连接策略”。有“公共IP”和“公共DNS”选项。