Я экспериментирую с AKS и Azure CLI. Поэтому моей первой идеей было использование команд Azure CLI для настройки кластера AKS, что прошло довольно неплохо. Следующим шагом является объединение всех этих разных команд в один скрипт bash. Используя переменные внутри скрипта, я надеялся сделать мою жизнь проще, и в начале это было сделано. Это было до тех пор, пока я не достиг команды az aks create
, где я пытаюсь передать --client-secret $AKS_SP_SECRET
и --service-principal $AKS_SP_APP_ID
. Эти 2 переменные задаются двумя предыдущими командами интерфейса командной строки Azure (см. Сценарий)
. Это всегда приводит к ошибке, сообщающей, что «указан неверный секретный ключ клиента». Я уже проверил значение переменных, повторив переменную $ AKS_SP_SECRET, которая содержит значение пароля.
Это сценарий, который я пытаюсь запустить в данный момент и который всегда приводит кошибка, сообщающая, что предоставленный клиентский секрет недействителен.
#!/bin/bash
LOCATION="westeurope"
RESOURCEGROUP_NAME="MyResourcegroup"
AKS_NAME="MyCluster"
AKS_SP_NAME='AksServicePrincipal'
# Create a service principal
az ad sp create-for-rbac \
--name http://$AKS_SP_NAME \
--skip-assignment
# Retrieve Service principal APPID and Client Secret
AKS_SP_APP_ID=$(az ad app list --display-name $AKS_SP_NAME --query "[].appId" -o tsv)
AKS_SP_SECRET=$(az ad sp credential reset --name http://$AKS_SP_NAME --query "password" -o tsv)
# Create Azure Kubernetes Cluster
az aks create --resource-group $RESOURCEGROUP_NAME \
--name $AKS_NAME \
--client-secret $AKS_SP_SECRET \
--service-principal $AKS_SP_APP_ID \
--generate-ssh-keys \
--location $LOCATION \
--kubernetes-version 1.13.11 \
Если я разделю вышеуказанный сценарий на 2 различных сценария и задаю значение переменной AKS_SP_SECRET во втором сценарии, например AKS_SP_PASSWORD=99173ccb-5f2a-4eab-b367-3257fd9627ac
,Я не получаю сообщение об ошибке, и все работает, как ожидалось.
Кто-нибудь видит, что я делаю неправильно? И возможно ли передать секрет через переменную в bash-скрипте?
С уважением.