Получение значения переменной в конвейере azure - PullRequest
0 голосов
/ 02 апреля 2020
  enviornment: 'dev'
  acr-login: $(enviornment)-acr-login
  acr-secret: $(enviornment)-acr-secret

dev-acr-login и dev-acr-secret - секреты, хранящиеся в keyvault для входа в систему acr и секрета acr.

В конвейере получение секретов с помощью этой задачи

      - task: AzureKeyVault@1
        inputs:
          azureSubscription: $(connection)
          KeyVaultName: $(keyVaultName)
          SecretsFilter: '*'

Эта задача создает переменные задачи с именами 'dev-acr-login' и 'dev-acr-secret'

Нет, если я хочу войти в систему docker Я не могу этого сделать

Следующий код работает, и я могу войти в систему.

      - bash: |
          echo $(dev-acr-secret) | docker login \
              $(acrName) \
              -u $(dev-acr-login) \
              --password-stdin
        displayName: 'docker login'

Следующий не работает. Можно ли использовать имена переменных $ (acr-login) и $ (acr-secret) вместо реальных ключей от keyvault?

      - bash: |
          echo $(echo $(acr-secret)) | docker login \
              $(acrRegistryServerFullName) \
              -u $(echo $(acr-login)) \
              --password-stdin
        displayName: 'docker login'

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете передать их как переменные окружения:

- bash: |
    echo $(echo $ACR_SECRET) | ...
  displayName: docker login
  env:
    ACR_SECRET: $(acr-secret)

Но какова цель, а не просто вывод значений пароля, как вы сказали, работает в другом примере? Пока задача заключается в создании безопасных переменных, они будут защищены в журналах. В любом случае вам нужно будет это сделать, так как в противном случае они будут отображаться в журналах диагностики c, если кто-то включит диагностику, что может сделать любой.

Пример для этого:

- bash: |
    echo "##vso[task.setvariable variable=acr-login;issecret=true;]$ACR_SECRET"
  env:
    ACR_SECRET: $($(acr-secret)) # Should expand recursively

См. Определение переменных: установите секретные переменные для получения дополнительной информации и примеров.

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