В ночной сборке Azure конвейеров у меня есть 2 задачи:
- Сначала я удаляю самозаверяющий сертификат из хранилища ключей
- Затем я импортирую тот же самый -подписанный сертификат в хранилище ключей
Причина, по которой я это делаю, - убедиться, что в хранилище ключей всегда доступен определенный сертификат .
Вот мой текущий код:
# purge the self-signed cert from the Keyvault to avoid conflict; ignore failures
- task: AzureCLI@2
inputs:
azureSubscription: '${{ parameters.ArmConnection }}'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
continueOnError: true
failOnStandardError: false
powerShellErrorActionPreference: 'silentlyContinue'
inlineScript: |
az keyvault certificate delete --vault-name $(KeyVaultName) --id 'https://$(KeyVaultName).vault.azure.net/certificates/my-self-signed-cert'
az keyvault certificate purge --vault-name $(KeyVaultName) --id 'https://$(KeyVaultName).vault.azure.net/deletedcertificates/my-self-signed-cert'
# import the self-signed certificate my-self-signed-cert into the Keyvault
- task: AzurePowerShell@5
inputs:
azureSubscription: '${{ parameters.ArmConnection }}'
ScriptType: 'InlineScript'
azurePowerShellVersion: '3.1.0'
Inline: |
$Pwd = ConvertTo-SecureString -String 'MyPassword' -Force -AsPlainText
$Base64 = 'MIIKqQ____3000_CHARS_HERE______1ICAgfQ=='
Import-AzKeyVaultCertificate -VaultName $(KeyVaultName) -Name my-self-signed-cert -CertificateString $Base64 -Password $Pwd
Мой вопрос:
Как я могу проверить, возможно, сертификат уже доступен в хранилище ключей?
(потому что я использую ARM шаблоны и ресурсы продолжают работать и не удаляются, пока конвейер запускается каждый вечер).
И если сертификат есть, как пропустить указанные выше 2 задачи (Azure -cli и PowerShell )?
Я не совсем понимаю, как использовать условные выражения в YAML-файле конвейеров.