Я выполняю шаблон ARM, который создает службу Azure Kubernetes и другие ресурсы из задачи развертывания группы ресурсов Azure.
Мой шаблон ARM имеет в качестве параметров servicePrincipalClientId
и servicePrincipalClientSecret
конфиденциальные данные, которыеиспользуются для создания кластера Azure Kubernetes, просто прямо здесь . (Эта ссылка - мой полный шаблон ARM)
Итак, я делаю следующее:
- Я создал
servicePrincipalClientId
и servicePrincipalClientSecret
в качестве переменных конвейера
- Я ранее создал субъект службы и его
servicePrincipalClientId
и servicePrincipalClientSecret
данные, я использую их для созданияподключение к сервису для подключения к облаку Azure следующим образом:
- У меня есть задача PowerShell для преобразования
servicePrincipalClientId
и servicePrincipalClientSecret
значения переменных в качестве безопасных строк следующим образом:
$env:secretServicePrincipalClientId = ConvertTo-SecureString '$($env:servicePrincipalClientId)' -AsPlainText -Force
$env:secretServicePrincipalClientSecret = ConvertTo-SecureString '$($env:servicePrincipalClientSecret)' -AsPlainText -Force
Чтобы развернуть ресурсы, определенные в шаблоне ARM, я создал группу ресурсов AzureЗадача развертывания со следующими параметрами:
Я использую служебное соединение, созданное для взаимодействия с моей подпиской.
- Действие, которое необходимо выполнить : Создать или обновить группу ресурсов
Шаблон , путь к шаблону ARM, указанный выше.
Переопределить параметры шаблона Я включил сюда все значения параметров шаблона ARM и хочу подчеркнуть здесь, как я ссылаюсь на значения переменных servicePrincipalClientId
и servicePrincipalClientSecret
:
Я ссылаюсь здесь на переменные secretServicePrincipalClientId
и secretServicePrincipalClientSecret
, которые я использовал для преобразования значений переменных servicePrincipalClientId
и servicePrincipalClientSecret
в безопасные строки выше в моих первых лазурных разработкахзадача
-servicePrincipalClientId $($secretServicePrincipalClientId)
-servicePrincipalClientSecret $($secretServicePrincipalClientSecret)
.
.
-serviceCidr "100.0.0.0/16"
-dnsServiceIP "100.0.0.10"
-dockerBridgeCidr "172.17.0.1/16"
.
.
Итак, когда я выполняю конвейер выпуска, я получаю эту ошибку в задаче развертывания группы ресурсов Azure
2019-10-26T20:05:13.3246017Z The detected encoding for file 'd:\a\r1\a\Project\Deployments\ARMTemplates\Infrastructure\AzResourceGroupDeploymentApproach\testing.json' is 'utf-8'
2019-10-26T20:05:13.3410693Z Starting Deployment.
2019-10-26T20:05:13.3412081Z Deployment name is AzureDevOpsDeployment
2019-10-26T20:05:18.1729784Z There were errors in your deployment. Error code: InvalidTemplateDeployment.
2019-10-26T20:05:18.1730624Z ##[error]The template deployment 'AzureDevOpsDeployment' is not valid according to the validation procedure. The tracking id is 'xxxxxxx'. See inner errors for details.
2019-10-26T20:05:18.1731223Z ##[error]Details:
2019-10-26T20:05:18.1732062Z ##[error]ServicePrincipalNotFound: Provisioning of resource(s) for container service KubernetesCluster-aks in resource group testing failed. Message: {
"code": "ServicePrincipalNotFound",
"message": "Service principal clientID: $($secretServicePrincipalClientId) not found in Active Directory tenant ***, Please see https://aka.ms/aks-sp-help for more details."
}. Details:
2019-10-26T20:05:18.1733305Z ##[error]Task failed while creating or updating the template deployment.
2019-10-26T20:05:18.1765718Z ##[section]Finishing: Azure Deployment:Create Or Update Resource Group action on testing
Похоже на участника службы, который я использую для подключенияв Azure облако не существует, но это не так. Этот принципал службы существует.
Если я включу в текст в текстовом виде значения servicePrincipalClientId
и servicePrincipalClientSecret
-servicePrincipalClientId <servicePrincipalClientId-value>
-servicePrincipalClientSecret <servicePrincipalClientSecret-value>
Задача группы ресурсов Azure работает, а ресурсы вШаблон ARM развертываются в облаке Azure из DevOps Azure.
Согласно этой ссылке AKS нужен субъект службы длябыть создан.
Итак, я создаю Службу Azure Kubernetes из Devure Devops, выполняя шаблон ARM через задачу развертывания группы ресурсов с использованием существующих учетных данных участника службы в задаче ив сервисном соединении.
- Почему мой сервисный участник не распознается?
Я пытаюсь этот параметр устранить неполадки и решить проблему , но ябоюсь, что проблема не в самом субъекте службы, а в этом, я думаю, мне нужно было бы ссылаться на - servicePrincipalClientId $($secretServicePrincipalClientId)
и
-servicePrincipalClientSecret $($secretServicePrincipalClientSecret)
особым образом.
Как я могу это сделать?
Если кто-то может указать мне правильное направление, я был бы признателен