Агенты развертывания в наборе масштабов виртуальной машины Azure - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время я развертываю набор масштабов виртуальной машины (VMSS), используя шаблон ARM, который имеет ресурс внутри VMSS для установки расширения Azure для агента развертывания Azure DevOps (ADO).Все успешно развернуто, и узел зарегистрирован в ADO со всеми деталями, как в шаблоне ARM.Однако проблема в том, что он устанавливает агент только на первом узле и (насколько я вижу) игнорирует остальные узлы.Я протестировал это с несколькими узлами при создании набора масштабов, а также с автоматическим масштабированием.Оба сценария приводят к регистрации только первого агента.Вот код, который я использую (я удалил биты VMSS, чтобы уменьшить длину шаблона, здесь, конечно, есть настройки ОС, хранилища и сети):

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "name": "[parameters('VMSSName')]",
  "apiVersion": "2018-10-01",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "[parameters('VMSSSize')]",
    "capacity": "[parameters('VMSSCount')]",
    "tier": "Standard"
  },
  "dependsOn": [],
  "properties": {
    "overprovision": "[variables('overProvision')]",
    "upgradePolicy": {
      "mode": "Automatic"
    },
    "virtualMachineProfile": {},
      "storageProfile": {},
      "networkProfile": {},
      "extensionProfile": {
        "extensions": [
          {
            "type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
            "name": "VMSS-NetworkWatcher",
            "location": "[resourceGroup().location]",
            "properties": {
              "publisher": "Microsoft.Azure.NetworkWatcher",
              "type": "[if(equals(parameters('Platform'), 'Windows'), 'NetworkWatcherAgentWindows', 'NetworkWatcherAgentLinux')]",
              "typeHandlerVersion": "1.4",
              "autoUpgradeMinorVersion": true
            }
          },
          {
            "type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
            "name": "VMSS-TeamServicesAgent",
            "location": "[resourceGroup().location]",
            "properties": {
              "publisher": "Microsoft.VisualStudio.Services",
              "type": "[if(equals(parameters('Platform'), 'Windows'), 'TeamServicesAgent', 'TeamServicesAgentLinux')]",
              "typeHandlerVersion": "1.0",
              "autoUpgradeMinorVersion": true,
              "settings": {
                "VSTSAccountName": "[parameters('VSTSAccountName')]",
                "TeamProject": "[parameters('VSTSTeamProjectName')]",
                "DeploymentGroup": "[parameters('VSTSDeploymentGroupName')]",
                "AgentName": "[concat(parameters('VMSSName'),'-DG')]",
                "Tags": "[parameters('VSTSDeploymentAgentTags')]"
              },
              "protectedSettings": {
                "PATToken": "[parameters('VSTSPATToken')]"
              }
            }
          }
        ]
      }
    }
  }
}

Теперь желаемое состояниеКонечно, в том, что на всех узлах будет установлен агент, чтобы я мог использовать группу развертывания внутри конвейера выпуска.

1 Ответ

0 голосов
/ 29 ноября 2018

Ваша проблема в том, что все агенты имеют одинаковые AgentName, поэтому он эффективно перезаписывает агента, и только последний "выживает".Я не думаю, что есть что-то, что вы можете сделать, если только вы не измените AgentName и он автоматически назначается на основе имени компьютера.

Вы можете преобразовать это в расширение script \ dsc, чтобы вы могли вычислить всена лету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...