- { role: create_env, new_inst_prefix: "{{ build_number }}", nginx_only: yes, when: CREATE_NEW_SOLR_NODES == 'false', when: CREATE_NEW_NGINX_NODES == 'true' }
- { role: create_env, new_inst_prefix: "{{ build_number }}", solr_only: yes, when: CREATE_NEW_SOLR_NODES == 'true', when: CREATE_NEW_NGINX_NODES == 'false' }
当我为 NGINX 运行作业时,它正在通过,但是,对于 Solr,它失败并出现以下错误,并且我通过 Jenkins 参数传递
nginx_only
、CREATE_NEW_SOLR_NODES
、solr_only
和 CREATE_NEW_SOLR_NODES
。
致命:[127.0.0.1]:失败! => {“failed”:true,“msg”:“条件检查'CREATE_NEW_NGINX_NODES =='true''失败。错误是:评估条件时出错(CREATE_NEW_NGINX_NODES =='true'):'CREATE_NEW_NGINX_NODES'未定义 错误似乎出现在 '/home/jenkins/workspace/all_env_prepare/roles/create_env/tasks/main.yml': 第 3 行,第 3 列,但可能 位于文件的其他位置,具体取决于确切的语法问题。 有问题的行似乎是: - include_vars: group_vars/private_key.yml ^ 这里 “}
我希望当 NGINX 条件通过时,必须运行 NGINX 角色并跳过 Solr 角色,Solr 反之亦然。
jenkins 参数大多数情况下不与 env 连接。
将参数传递给环境的最简单方法:
parameters{
string(name:MyParam)
}
environment{
MY_ENV=params.MyParam
}
或者您可以使用
withEnv()
node {
withEnv(['MY_PARAM=true',
'DB_ENGINE=sqlite']) {
stage('Build') {
sh 'printenv'
}
}
}