我有我的groovy脚本来在azure应用服务上部署一个简单的api(nodejs)。
pipeline {
agent none
environment {
//app service
DEV_SERVICE_NAME = 'xxxxxx'
...
...
AZURE_DEV_USER_ID = 'abcdefghijk'
AZURE_DEV_PASSWORD = 'xxxxxx'
AZURE_ACTIVE_DIRECTORY_TENANT_ID = 'xxxxxx'
}
stage('Service Deployment (DEV)'){
agent { label 'master'}
steps {
//Install all packages
bat "npm i --production"
..
..
bat "CALL az login --service-principal --username $env.AZURE_DEV_USER_ID --password $env.AZURE_DEV_PASSWORD --tenant $env.AZURE_ACTIVE_DIRECTORY_TENANT_ID"
..
..
}因此,当jenkins构建、失败并打印错误时
C:\jenkins\workspace\loud_feature-deploy-api-on-azure@2>CALL az login --service-principal --username
null --password null --tenant null
usage: az login [-h] [--verbose] [--debug]
[--output {json,jsonc,table,tsv,yaml,yamlc,none}]
[--query JMESPATH] [--username USERNAME] [--password PASSWORD]
[--service-principal] [--tenant TENANT]
[--allow-no-subscriptions] [-i] [--use-device-code]
[--use-cert-sn-issuer]
az login: error: 'issuer'所以,我有两个问题。
发布于 2020-04-05 15:28:58
我试图通过遵循这份詹金斯文件来重现您的问题,但是成功地回显了设置的环境变量。
关于您的示例中的AZURE_DEV_PASSWORD变量,我认为在管道中拥有诸如密码这样的安全信息并不是更好的方法,因此我建议您只向Jenkins凭据添加一个Azure服务主体,然后使用withCredentials([azureServicePrincipal('SERVICEPRINCIPALCREDENTIALID')])编写一个Jenkins管道脚本,然后使用sh部件在Azure应用程序服务上部署api(nodejs)。
有关它的更多信息,请参考这个Azure文档或这篇Jenkins插件文章或这个Jenkins博客。
https://stackoverflow.com/questions/60761033
复制相似问题