Поскольку ваше требование заключается в отправке командной строки в Azure, я бы предложил вам выполнить простое задание Jenkins (либо задание фристайла, либо конвейерное задание), которое выполнило бы это требование.
Предварительные условия:
- Иметь учетную запись Azure Batch
- Иметь пул Azure Batch
- Иметь пакетное задание Azure
- Azure CLI установлен на узле Jenkins, где выбудет выполнять задание Jenkins
- Добавить субъект службы Azure к учетным данным Jenkins в соответствии с инструкциями here
Затем выполнить задание фристайла Jenkins, выполняющее команды, аналогичные приведенным ниже, в оболочкешаг компоновки после подключения к интерфейсу командной строки Azure с использованием субъекта службы Azure.
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
az batch task create --task-id mytask$i --job-id myjob --command-line "/bin/bash -c 'xxxxxxxxxxxxxxxxxxxxx; sleep 90s'"
Или выполните конвейерное задание Jenkins, как показано ниже.
#!groovy
node {
try {
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
}
catch (MissingPropertyException e) {
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
}
stage('test'){
withCredentials([azureServicePrincipal('JENKINSSERVICEPRINCIPALCREDENTIALID')]) {
def sampleoutputone = sh (returnStdout: true, script: '''az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID > /dev/null
az account set -s $AZURE_SUBSCRIPTION_ID > /dev/null
sampleoutputtwo=$(az batch task create --task-id mytask --job-id myjob --command-line "/bin/bash -c 'xxxxxxxxxxxxxxxxxxxxx; sleep 90s'")
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
}
}
}
PS Обратите внимание, что код, приведенный в этомОтвет - это просто пример, который вам, возможно, придется немного подправить, чтобы работать в соответствии с вашими потребностями.
Надеюсь, это поможет !!Ура !!