【发布时间】:2017-07-15 12:15:03
【问题描述】:
我正在使用 sqoop 作业自动部署 dev 和 prod,这些作业必须针对每种类型的特定服务器进行调度。对于这些作业,与每个 sqoop 作业关联的脚本需要根据 dev 与 prod 进行更改。目前,我有一个 git repo,其中包含一个 dev 和 prod 文件夹,其中批准的 dev 更改被放入 prod 文件夹,但变量(对 dev 数据库与 prod 数据库的引用)已更改。然后我有两个 jenkins 管道,它们与每个管道相关联并具有独立的触发器。这真是太骇人听闻了。
我目前的计划是合并到一个文件夹中,并用伪变量(例如 %DBPREFIX%)替换所有变量,然后使用每个关联的管道正则表达式,并在编译时将所有匹配项替换为其关联的数据库前缀。
需要更改的文件是shell脚本和hive脚本,所以我不能只在Jenkins节点shell中定义一个环境变量。
有没有更好的方法来处理这个问题?
tl;dr:我需要在不同的文件中设置变量,这些变量可以通过 jenkins 管道自动更改。
【问题讨论】:
标签: sqoop jenkins jenkins-pipeline sqoop pipeline continuous-deployment