Skip to content

Commit e8fa41a

Browse files
author
Kimmo Forss
committed
Switch to logon using SPN if MSI does not have permissions
1 parent 672fc70 commit e8fa41a

1 file changed

Lines changed: 26 additions & 11 deletions

File tree

deploy/pipelines/03-sap-system-deployment.yaml

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,16 @@ stages:
100100
exit 2
101101
fi
102102
103+
echo -e "$green--- Define variables ---$reset"
104+
cd $HOME_CONFIG/SYSTEM/$(sap_system_folder)
105+
106+
export REMOTE_STATE_SA=$(cat ${environment_file_name} | grep REMOTE_STATE_SA | awk -F'=' '{print $2}' | xargs) ; echo 'Terraform state file storage account' $REMOTE_STATE_SA
107+
export STATE_SUBSCRIPTION=$(cat ${environment_file_name} | grep STATE_SUBSCRIPTION | awk -F'=' '{print $2}' | xargs) ; echo 'Terraform state file subscription' $STATE_SUBSCRIPTION
108+
export deployer_tfstate_key=$(cat ${environment_file_name} | grep deployer_tfstate_key | awk -F'=' '{print $2}' | xargs) ; echo 'Deployer State File' $deployer_tfstate_key
109+
export key_vault=$(cat ${environment_file_name} | grep keyvault= | awk -F'=' '{print $2}' | xargs) ; echo 'Deployer Key Vault' ${key_vault}
110+
export landscape_tfstate_key=$(cat "${environment_file_name}" | grep landscape_tfstate_key | awk -F'=' '{print $2}' | xargs) ; echo 'landscape_tfstate_key' $landscape_tfstate_key
111+
export workload_key_vault=$(cat "${environment_file_name}" | grep workloadkeyvault | awk -F'=' '{print $2}' | xargs) ; echo 'Workload Key Vault' ${workload_key_vault}
112+
103113
# Check if running on deployer
104114
if [[ ! -f /etc/profile.d/deploy_server.sh ]]; then
105115
echo -e "$green --- Install dos2unix ---$reset"
@@ -126,26 +136,31 @@ stages:
126136
else
127137
echo -e "$green --- Running on deployer ---$reset"
128138
az login --identity --output none
139+
140+
tfstate_resource_id=$(az resource list --name "${REMOTE_STATE_SA}" --subscription ${STATE_SUBSCRIPTION} --resource-type Microsoft.Storage/storageAccounts --query "[].id | [0]" -o tsv)
141+
if [ -z $tfstate_resource_id ]; then
142+
az login --service-principal --username $(ARM_CLIENT_ID) --password=$ARM_CLIENT_SECRET --tenant $(ARM_TENANT_ID) --output none
143+
return_code=$?
144+
if [ 0 != $return_code ]; then
145+
echo -e "$boldred--- Login failed ---$reset"
146+
echo "##vso[task.logissue type=error]az login failed."
147+
exit $return_code
148+
fi
149+
150+
fi
151+
152+
129153
fi
130154
131155
echo -e "$green--- Convert config file to UX format ---$reset"
132156
133157
dos2unix -q SYSTEM/$(sap_system_folder)/$(sap_system_configuration)
134158
135-
echo -e "$green--- Define variables ---$reset"
136-
cd $HOME_CONFIG/SYSTEM/$(sap_system_folder)
137-
138-
export REMOTE_STATE_SA=$(cat ${environment_file_name} | grep REMOTE_STATE_SA | awk -F'=' '{print $2}' | xargs) ; echo 'Terraform state file storage account' $REMOTE_STATE_SA
139-
export STATE_SUBSCRIPTION=$(cat ${environment_file_name} | grep STATE_SUBSCRIPTION | awk -F'=' '{print $2}' | xargs) ; echo 'Terraform state file subscription' $STATE_SUBSCRIPTION
140-
export deployer_tfstate_key=$(cat ${environment_file_name} | grep deployer_tfstate_key | awk -F'=' '{print $2}' | xargs) ; echo 'Deployer State File' $deployer_tfstate_key
141-
export key_vault=$(cat ${environment_file_name} | grep keyvault= | awk -F'=' '{print $2}' | xargs) ; echo 'Deployer Key Vault' ${key_vault}
142-
export landscape_tfstate_key=$(cat "${environment_file_name}" | grep landscape_tfstate_key | awk -F'=' '{print $2}' | xargs) ; echo 'landscape_tfstate_key' $landscape_tfstate_key
143-
export workload_key_vault=$(cat "${environment_file_name}" | grep workloadkeyvault | awk -F'=' '{print $2}' | xargs) ; echo 'Workload Key Vault' ${workload_key_vault}
144159
145160
echo -e "$green--- Run the installer script that deploys the SAP System ---$reset"
146161
$SAP_AUTOMATION_REPO_PATH/deploy/scripts/installer.sh --parameterfile $(sap_system_configuration) --type sap_system \
147-
--state_subscription ${STATE_SUBSCRIPTION} --storageaccountname ${REMOTE_STATE_SA} \
148-
--deployer_tfstate_key ${deployer_tfstate_key} --landscape_tfstate_key ${landscape_tfstate_key} \
162+
--state_subscription ${STATE_SUBSCRIPTION} --storageaccountname ${REMOTE_STATE_SA} \
163+
--deployer_tfstate_key ${deployer_tfstate_key} --landscape_tfstate_key ${landscape_tfstate_key} \
149164
--ado --auto-approve
150165
151166
return_code=$?

0 commit comments

Comments
 (0)