Jenkins azure ошибка развертывания: издатель ошибок входа в систему az - PullRequest
0 голосов
/ 19 марта 2020

У меня есть сценарий groovy для развертывания простого API (nodejs) в azure службе приложений.

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'

Итак, у меня есть 2 вопроса.

  1. Почему печатается ноль для значений env?

  2. Почему эта ошибка?, Я прочитал MSFT do c и команда должна работать нормально. Итак, я не знаю, что может происходить, нулевые значения подозрительны ...

1 Ответ

2 голосов
/ 05 апреля 2020

Я попытался воспроизвести вашу проблему, следуя этому документу Jenkins, но успешно смог отобразить установленные переменные среды. Что касается переменной AZURE_DEV_PASSWORD в вашем случае, я считаю, что не лучше подходить иметь защищенную информацию, такую ​​как пароль, в конвейере, поэтому я бы предложил вам просто добавить субъекта службы Azure к учетным данным Jenkins, а затем написать сценарий конвейера Jenkins с помощью ' withCredentials ([azureServicePrincipal ('SERVICEPRINCIPALCREDENTIALID')]) ', а затем с помощью части' sh 'получить команду Azure CLI для развертывания api (nodejs) на azure Служба приложений в зависимости от ситуации. Для получения дополнительной информации, пожалуйста, обратитесь к этому Azure документу или этой статье плагина Jenkins или этому блогу Jenkins.

Hope это помогает! Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...