Jenkins Pipeline job – 记住先前的值

103次阅读
没有评论

问题描述

在使用Jenkins Pipeline时,遇到一个问题。他的Pipeline使用Terraform在GCP中创建计算环境。在构建过程中,有5个问题需要回答,包括:
1. GCP项目名称
2. RHEL服务器数量
3. RHEL服务器名称
4. CentOS服务器数量
5. CentOS服务器名称

这是一个标准的构建任务,如果用户不使用此构建任务,则无法构建服务器。

问题是,当用户返回请求更多服务器时,他们必须再次填写所有细节。他们必须记住之前传递的所有值。

所以问题是:如何使这个过程更加用户友好,而不是为每个GCP项目创建一个单独的构建任务并硬编码值。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据回答1,你可以使用Jenkins的Rebuild选项来重新构建上一次运行的作业,并保留参数的值。只需找到用户上次启动的作业的先前构建,点击进入,然后从侧边栏选择Rebuild。这样做只有在Jenkins保留足够的构建记录时才有效。你可以在作业配置中选择保留多少个构建记录,例如我们保留两周的记录。你还可以选择将某些“模板”构建保留永久,以便更容易访问。

以下是使用Rebuild选项的步骤:
1. 找到用户上次启动的作业的先前构建。
2. 点击进入该构建。
3. 从侧边栏选择Rebuild。

请注意,这种方法只在Jenkins保留足够的构建记录时有效。如果你想要更长时间的保留记录,可以在作业配置中选择保留的天数或构建数量。

方案2

另一种方法是使用Jenkins的参数化构建。你可以在构建任务中定义参数,并在构建时传递这些参数的值。这样,用户只需要在每次构建时填写参数的值,而不需要记住之前的值。

以下是使用参数化构建的步骤:
1. 在Jenkins中打开构建任务的配置页面。
2. 在构建参数部分,定义需要的参数。例如,你可以定义一个字符串参数GCP_PROJECT_NAME,一个整数参数RHEL_SERVERS_COUNT等。
3. 在构建任务中使用这些参数的值。例如,在Terraform脚本中使用${GCP_PROJECT_NAME}来引用GCP项目名称参数的值。
4. 在构建任务运行时,Jenkins会提示用户输入参数的值。

使用参数化构建,用户只需要在每次构建时填写参数的值,而不需要记住之前的值。

请注意,使用参数化构建需要在构建任务中定义参数,并相应地修改构建脚本或配置文件来使用这些参数的值。

方案3

如果你希望更进一步,可以考虑使用Jenkins的Pipeline功能。Pipeline允许你以代码的方式定义构建过程,并使用Groovy语言编写构建脚本。你可以在Pipeline脚本中定义参数,并在构建过程中使用这些参数的值。

以下是使用Pipeline的步骤:
1. 在Jenkins中创建一个Pipeline项目。
2. 在Pipeline脚本中定义需要的参数。例如,你可以使用parameters关键字定义一个字符串参数GCP_PROJECT_NAME,一个整数参数RHEL_SERVERS_COUNT等。
3. 在Pipeline脚本中使用这些参数的值。例如,在Terraform步骤中使用${params.GCP_PROJECT_NAME}来引用GCP项目名称参数的值。
4. 在构建任务运行时,Jenkins会提示用户输入参数的值。

使用Pipeline,你可以以代码的方式定义构建过程,并使用参数化构建来简化用户的操作。

请注意,使用Pipeline需要一定的Groovy编程知识,并且需要在Jenkins中安装相应的插件。

以上是几种解决方案,你可以根据自己的需求选择适合的方法来使构建过程更加用户友好。

正文完