1. 简介
作业可以使用变量,在作业或者分组作业启动的时候需要填写空白的变量。
任务启动过程中显示的变量顺序是根据变量描述进行排序的,如果要调整变量的顺序可以通过修改描述来解决。
2. 变量的作用范围
2.1. 脚本步骤
服务器列表,一般情况下使用的是$ip。
脚本参数。
2.2. 分发文件
源文件来自构建, 流水线id和版本$version。
源文件,ip列表和源文件路径,可以写成如:/tmp/abc/$foo/a.txt。
目标文件,ip和目标路径,同上。
3. 特殊变量
3.1. ip
ip变量用来做机器列表传递,在任务启动的时候如果有ip变量,说明是一个需要ip变量的任务。
这时候可能存在一个情况,ip变量是想获取机器分批中的机器列表。
这里可以通过ip变量的描述的内容进行控制,有四种情况
情况一: 备注内容为 "group"
在任务启动时候,会显示机器分批列表,用户选择机器列表来决定ip的值,会启动分组任务。
情况二: 备注内容为 "group:分批组名", 如"group:abc"
任务启动时,不会显示ip字段,ip需要的信息已经选定了机器分批“abc”。会启动分组任务。
情况三:备注内容为"group:val=ip1,ip2",如 "group:val=10.10.10.1,10.10.10.2"
任务启动时,不会显示ip字段,ip内容值为val=指定的部分,会启动分组任务。
情况四,如果备注内容不是以上三种情况则为第四总情况
启动任务时,会显示ip字段,用户手动填写ip列表,多个ip用逗号分隔。会启动作业任务。
3.2. _rollbackVersion_
分组作业执行过程中,如果是需要进行回滚的任务,把回滚的版本写到变量_rollbackVersion_中。
在触发回滚时,分组作业会把_rollbackVersion_中的任务替换成version变量启动回滚作业。
_rollbackVersion_变量为分组作业使用的特殊变量,所以在该变量有值的情况下提交任务,
会把这个变量提交给分组作业接口。
3.3. _exit_
一般情况下作业步骤中遇到错误的时候,作业会卡住然后发送通知给运维或者研发确认后手动重试。
但是在某些情况下可能需要任务遇到失败后直接退出。比如测试环境的发布。
_exit_可以为如下情况:
_exit_等于1或者true。作业遇到“执行命令”或者“同步文件”失败时任务直接退出。
_exit_等于cmd,作业任务遇到“执行命令”步骤失败时直接退出。
_exit_等于scp,作业任务遇到“同步文件”步骤失败时直接退出。
3.4. _appname_
用于标记作业对应的应用名称,在业务管理中变量查看可以看到对应的变量。
_appname_为abc时,变量查看中看到的变量为APP_abc_VERSION。
如果不设置_appname_变量,在变量查看中看到的变量是VERSION。
一个服务树节点如果不定义该变量,多个应用的版本会混合在一起无法区分。
3.5. _skipSameVersion_
_skipSameVersion_变量是在任务执行过程中,如果该分组要跑的任务的版本和它当前的版本一致,
则会跳过该任务,任务会直接退出成功返回。
需要结合_appname_变量一起使用。
3.6. _authorization_
直接触发作业需要的权限是openc3_job_write,默认情况下运维角色才有这个权限点。
研发有openc3_job_control的权限点,该权限点可以控制作业的重试等功能。
如果作业中添加了_authorization_ 等于“true”的变量,
那么在作业或者分组作业启动过程只验证openc3_job_control权限点。也就是授权给研发触发该作业。
3.7. _pip_
流水线的作业中如果添加了该变量,流水线发布时可以指定发布的主机列表。
在轻应用的时候也可以使用,设置一个变量pip等于1,就会在ip选项下面多出来一个“选择服务器”的按钮。