Политика тегов Azure для машин Linux и Windows - PullRequest
0 голосов
/ 20 апреля 2020

Существует политика ARM для проверки существования определенного тега на любой виртуальной машине в Azure:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "AllOf": [
        {
          "field": "type",
          "in": [
            "microsoft.compute/virtualmachines",
            "Microsoft.ClassicCompute/virtualMachines"
          ]
        },
        {
          "field": "[concat('tags[', parameters('tagName'), ']')]",
          "exists": "false"
        }
      ]
    },
    "then": {
      "effect": "audit"
    }
  },
  "parameters": {
    "tagName": {
      "type": "String",
      "metadata": {
        "displayName": "tagName",
        "description": "Tag used to unequally identify a VM"
      }
    }
  }
}

Как создать отдельную политику, одну для Linux, другую для Windows ВМ? Я не могу найти способ фильтрации. Т.е. для Windows я использую этот скрипт политики:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Compute/virtualMachines"
        },
        {
          "field": "Microsoft.Compute/imagePublisher",
          "in": [
            "MicrosoftWindowsServer",
            "MicrosoftSQLServer"
          ]
        },
        {
          "field": "[concat('tags[', parameters('tagName'), ']')]",
          "exists": "false"
        }
      ]
    },
    "then": {
      "effect": "audit"
    }
  },
  "parameters": {
    "tagName": {
      "type": "String",
      "metadata": {
        "displayName": "tagName",
        "description": "Tag used to help unequally identify a VM"
      }
    }
  }
}

Но выше показаны оба Windows и Linux, так как это логика c как ", если ВМ windows и имеет определенный тег , означает совместимость, в противном случае, если нет определенного тега c или VM равен Linux, обрабатывается как несовместимый ". Я хочу видеть только, сколько виртуальных машин (в соответствии с тегом) совместимо с общим числом Windows виртуальных машин, исключая Linux.

И еще одна политика будет применяться только к Linux виртуальным машинам, исключая Windows.

...