首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在EC2-Fleet上设置Jenkins环境变量的问题

在EC2-Fleet上设置Jenkins环境变量的问题
EN

Stack Overflow用户
提问于 2019-09-19 16:05:14
回答 4查看 746关注 0票数 9

我们在动态EC2-Fleet上设置Jenkins环境变量时遇到问题。

我们已经有了一个固定的主服务器(linux)和一个固定的Windows从服务器,但希望在系统负载变得沉重时动态地添加从服务器。为此,我们在AWS中创建了一个从AMI启动linux机器的Spot Request实例,并通过Jenkins中的EC2-fleet-plugin进行控制。

在这个EC2舰队能够提供任何帮助之前,我们的作业必须能够在它的节点上运行。我们的大多数作业都使用Jenkinsfile,并且需要设置某些环境变量,但是EC2-fleet-plugin不提供设置环境变量(https://issues.jenkins-ci.org/browse/JENKINS-36544)的可能性。

正如本文(JENKINS-36544)所建议的,我们尝试在“系统配置”中为动态ec2从站设置环境变量,并为“节点配置”上的其他节点设置环境变量以覆盖“系统配置”,至少我们是这么认为的。如果这个bug不存在,这应该是可行的:https://issues.jenkins-ci.org/browse/JENKINS-44425。由于这个bug,“系统配置”会覆盖“节点配置”,而不是相反。因此,我们不能使用它,因为现有节点将不再具有正确的环境变量。

作为最后的手段,我们尝试通过在Spot请求实例使用的ec2上创建/etc/profile.d/jenkinsvars.sh来设置动态AMI上的环境变量。此脚本将在登录系统范围(https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fprofile.d.2F.2A.sh)上自动运行。接下来,我们还尝试在AMI上的/home/ubuntu/.profile中设置它们,特别是ubuntu用户,也就是运行Jenkins agent (https://help.ubuntu.com/community/EnvironmentVariables#A.2BAH4-.2F.profile)的用户。但是Jenkins似乎没有使用这些环境变量,而是它自己的.

一种有效的方法是调整作业来加载一个groovy文件,该文件是AMI的一部分,以设置我们需要的环境变量,但这意味着要更改我们拥有的几乎所有作业,在我们的存储库(Bitbucket项目)中包含的所有Jenkinsfiles文件旁边。我们希望避免这种情况……

EN

回答 4

Stack Overflow用户

发布于 2019-10-03 14:45:32

尝试以下策略:

  1. 利用用户数据在Spot实例启动时运行shell脚本。它是将变量保存到环境中的主要配置文件和配置文件,让用户数据脚本将它们保存到/var/tmp或/etc/ plugin authors.
  2. Instead或参数存储中。请参阅此SO question中的答案。如果您想要加密您的信息,请使用KMS参数存储,如果您不关心,请使用最适合您需要的答案之一。
  3. 更改Jenkins作业以暂停,直到您的用户数据脚本完成运行(请参阅documentation from the plugin)
  4. Change others.Choose Jenkins作业以从您在步骤2中选择的位置提取变量。
票数 0
EN

Stack Overflow用户

发布于 2019-10-15 19:10:46

尝试重新启动服务器环境。只是说说而已。

票数 0
EN

Stack Overflow用户

发布于 2021-01-13 17:14:10

问题中缺少Jenkins版本或EC2插件版本,但根据合并的拉取请求中的描述,这个错误现在应该已经修复:https://github.com/jenkinsci/ec2-plugin/pull/440#issuecomment-597160730

Jenkins版本:

,因此此更改在<=2.204和>=2.205中都有效

EC2插件版本:>=ec2-1.50

JENKINS-36544 -修复Jenkins 2.205+ (#440) 上的节点属性

在拉取请求描述中:

  • 导航到云配置屏幕(此操作将移动到一个新页面"Advanced"
  • Expect "Add a new cloud“
  • 单击”AMI“部分下的"Amazon EC2”
  • ,单击AMI块底部的“Add”
  • ,展开“Advanced”
  • Expect以查看块底部的"Node
  • “块

<代码>F224

节点属性具有环境变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58006452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档