Рейтинг:0

Как использовать экспортированный шаблон Azure ARM?

флаг uz

У нас есть кластер kubernetes, работающий в нашей среде, я использовал опцию шаблона экспорта и получил файл json.

Но шаблон непригоден для использования, так как он имеет жестко закодированные значения идентификаторов подписки и ресурса.

Кто-нибудь может подсказать, как сделать его пригодным для использования. Я совершенно не знаком с шаблонами Azure ARM.

Мой шаблон:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "Версия содержания": "1.0.0.0",
    "параметры": {
        "имя_ресурса": {
            "тип": "строка",
            "метаданные": {
                "description": "Имя ресурса управляемого кластера."
            }
        },
        "место расположения": {
            "тип": "строка",
            "метаданные": {
                "description": "Расположение ресурса AKS."
            }
        },
        "dnsPrefix": {
            "тип": "строка",
            "метаданные": {
                "description": "Необязательный префикс DNS для использования с полным доменным именем размещенного сервера API Kubernetes."
            }
        },
        "osDiskSizeGB": {
            "тип": "инт",
            "значение по умолчанию": 0,
            "метаданные": {
                "description": "Размер диска (в гигабайтах) для предоставления каждому из узлов пула агентов. Это значение находится в диапазоне от 0 до 1023. Указание 0 применит размер диска по умолчанию для этого AgentVMSize."
            },
            "минимальное значение": 0,
            "максимальное значение": 1023
        },
        "кубернетеверсион": {
            "тип": "строка",
            "значение по умолчанию": "1.7.7",
            "метаданные": {
                "description": "Версия Kubernetes."
            }
        },
        "сетевой плагин": {
            "тип": "строка",
            "разрешенные значения": [
                "лазурь",
                "кубенет"
            ],
            "метаданные": {
                "description": "Сетевой плагин, используемый для построения сети Kubernetes."
            }
        },
        "включитьRBAC": {
            "тип": "логическое",
            "значение по умолчанию": правда,
            "метаданные": {
                "description": "Логический флаг для включения и выключения RBAC."
            }
        },
        "vmssNodePool": {
            "тип": "логическое",
            "значение по умолчанию": ложь,
            "метаданные": {
                "description": "Логический флаг для включения и выключения масштабируемых наборов виртуальных машин"
            }
        },
        "виндовспрофиле": {
            "тип": "логическое",
            "значение по умолчанию": ложь,
            "метаданные": {
                "description": "Логический флаг для включения и выключения масштабируемых наборов виртуальных машин"
            }
        },
        "enablePrivateCluster": {
            "тип": "логическое",
            "значение по умолчанию": ложь,
            "метаданные": {
                "description": "Включить частный сетевой доступ к кластеру Kubernetes."
            }
        },
        "enableHttpApplicationRouting": {
            "тип": "логическое",
            "значение по умолчанию": правда,
            "метаданные": {
                "description": "Логический флаг для включения и выключения маршрутизации HTTP-приложений."
            }
        },
        "enableAzurePolicy": {
            "тип": "логическое",
            "значение по умолчанию": ложь,
            "метаданные": {
                "description": "Логический флаг для включения и выключения надстройки политики Azure."
            }
        },
        "enableOmsAgent": {
            "тип": "логическое",
            "значение по умолчанию": правда,
            "метаданные": {
                "description": "Логический флаг для включения и выключения аддона omsagent."
            }
        },
        "Регион рабочей области": {
            "тип": "строка",
            "defaultValue": "Восток США",
            "метаданные": {
                "description": "Укажите регион для вашей рабочей области OMS."
            }
        },
        "имя_рабочей области": {
            "тип": "строка",
            "метаданные": {
                "description": "Укажите имя рабочей области OMS."
            }
        },
        "omsWorkspaceId": {
            "тип": "строка",
            "метаданные": {
                "description": "Укажите идентификатор ресурса рабочей области OMS."
            }
        },
        "омску": {
            "тип": "строка",
            "defaultValue": "автономный",
            "разрешенные значения": [
                "бесплатно",
                "автономный",
                "перноде"
            ],
            "метаданные": {
                "description": "Выберите артикул для вашей рабочей области."
            }
        },
        "сетевая политика": {
            "тип": "строка",
            "метаданные": {
                "description": "Сетевая политика, используемая для построения сети Kubernetes."
            }
        },
        "vnetSubnetID": {
            "тип": "строка",
            "метаданные": {
                "description": "Идентификатор ресурса подсети виртуальной сети, используемой для назначения IP-адресов узлам и/или модулям."
            }
        },
        "сервисСидр": {
            "тип": "строка",
            "метаданные": {
                "description": "Диапазон IP-адресов нотации CIDR, из которого назначаются IP-адреса сервисного кластера."
            }
        },
        "DNSServiceIP": {
            "тип": "строка",
            "метаданные": {
                "description": "IP-адрес DNS-сервера контейнеров."
            }
        },
        "докербриджсидр": {
            "тип": "строка",
            "метаданные": {
                "description": "IP-адрес нотации CIDR для моста Docker."
            }
        }
    },
    "Ресурсы": [
        {
            "apiVersion": "2021-02-01",
            "зависит от": [
                "[concat('Microsoft.Resources/deployments/', 'WorkspaceDeployment-20211130231648')]",
                "Microsoft.Network/virtualNetworks/trst-vnet"
            ],
            "type": "Microsoft.ContainerService/managedClusters",
            "местоположение": "[параметры('местоположение')]",
            "имя": "[параметры('resourceName')]",
            "характеристики": {
                "kubernetesVersion": "[параметры('kubernetesVersion')]",
                "enableRBAC": "[параметры('enableRBAC')]",
                "dnsPrefix": "[параметры('dnsPrefix')]",
                «Агентпулпрофилс»: [
                    {
                        "имя": "пул агентов",
                        "osDiskSizeGB": "[параметры('osDiskSizeGB')]",
                        "количество": 1,
                        "enableAutoScaling": правда,
                        "minCount": 1,
                        "maxCount": 2,
                        "vmSize": "Стандарт_B4ms",
                        "osType": "Линукс",
                        "storageProfile": "Управляемые диски",
                        "type": "Виртуальные машиныScaleSets",
                        "режим": "Система",
                        "максПодс": 110,
                        "зоны доступности": [
                            "1",
                            "2",
                            "3"
                        ],
                        "vnetSubnetID": "[параметры('vnetSubnetID')]"
                    }
                ],
                "сетевой профиль": {
                    "loadBalancerSku": "стандартный",
                    "networkPlugin": "[параметры('networkPlugin')]",
                    "networkPolicy": "[параметры('networkPolicy')]",
                    "serviceCidr": "[параметры('serviceCidr')]",
                    "dnsServiceIP": "[параметры('dnsServiceIP')]",
                    "dockerBridgeCidr": "[параметры('dockerBridgeCidr')]"
                },
                "аписерверакцесспрофиле": {
                    "enablePrivateCluster": "[параметры('enablePrivateCluster')]"
                },
                "профили дополнений": {
                    "httpApplicationRouting": {
                        "enabled": "[параметры('enableHttpApplicationRouting')]"
                    },
                    "лазурная политика": {
                        "enabled": "[параметры('enableAzurePolicy')]"
                    },
                    "омсагент": {
                        "включено": "[параметры('enableOmsAgent')]",
                        "конфигурация": {
                            "logAnalyticsWorkspaceResourceID": "[параметры('omsWorkspaceId')]"
                        }
                    }
                }
            },
            "теги": {
                «Владелец»: «[email protected]»,
                "цель": "автоматизация маркет-сервера"
            },
            "личность": {
                "тип": "Система назначена"
            }
        },
        {
            "type": "Microsoft.Ресурсы/развертывания",
            "name": "SolutionDeployment-20211130231648",
            "apiVersion": "2017-05-10",
            "resourceGroup": "[разделить(параметры('omsWorkspaceId'),'/')[4]]",
            "subscriptionId": "[разделить(параметры('omsWorkspaceId'),'/')[2]]",
            "характеристики": {
                "режим": "Инкрементный",
                "шаблон": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "Версия содержания": "1.0.0.0",
                    "параметры": {},
                    "переменные": {},
                    "Ресурсы": [
                        {
                            "apiVersion": "2015-11-01-предварительная версия",
                            "type": "Microsoft.OperationsManagement/решения",
                            "location": "[параметры('workspaceRegion')]",
                            "name": "[concat('ContainerInsights', '(', split(parameters('omsWorkspaceId'),'/')[8], ')')]",
                            "характеристики": {
                                "workspaceResourceId": "[параметры('omsWorkspaceId')]"
                            },
                            "строить планы": {
                                "name": "[concat('ContainerInsights', '(', split(parameters('omsWorkspaceId'),'/')[8], ')')]",
                                "product": "[concat('OMSGallery/', 'ContainerInsights')]",
                                "Промо-Код": "",
                                "издатель": "Майкрософт"
                            }
                        }
                    ]
                }
            },
            "зависит от": [
                "[concat('Microsoft.Resources/deployments/', 'WorkspaceDeployment-20211130231648')]"
            ]
        },
        {
            "type": "Microsoft.Ресурсы/развертывания",
            "name": "WorkspaceDeployment-20211130231648",
            "apiVersion": "2017-05-10",
            "resourceGroup": "[разделить(параметры('omsWorkspaceId'),'/')[4]]",
            "subscriptionId": "[разделить(параметры('omsWorkspaceId'),'/')[2]]",
            "характеристики": {
                "режим": "Инкрементный",
                "шаблон": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "Версия содержания": "1.0.0.0",
                    "параметры": {},
                    "переменные": {},
                    "Ресурсы": [
                        {
                            "apiVersion": "2015-11-01-предварительная версия",
                            "type": "Microsoft.OperationalInsights/рабочие области",
                            "location": "[параметры('workspaceRegion')]",
                            "name": "[параметры('workspaceName')]",
                            "характеристики": {
                                "арт": {
                                    "имя": "[параметры('omsSku')]"
                                }
                            }
                        }
                    ]
                }
            }
        },
        {
            "type": "Microsoft.Ресурсы/развертывания",
            "name": "ClusterMonitoringMetricPulisherRoleAssignmentDepl-20211130231648",
            "apiVersion": "2017-05-10",
            "resourceGroup": "трст",
            "subscriptionId": "ae642de8-dea6-4c85-887e-6b6c2ea9a2db",
            "характеристики": {
                "режим": "Инкрементный",
                "шаблон": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "Версия содержания": "1.0.0.0",
                    "параметры": {},
                    "переменные": {},
                    "Ресурсы": [
                        {
                            "type": "Microsoft.ContainerService/managedClusters/providers/roleAssignments",
                            "apiVersion": "2018-01-01-превью",
                            "name": "trstcluster/Microsoft.Authorization/8d6b2f7b-830e-4a4d-a644-084673fbee7a",
                            "характеристики": {
                                "roleDefinitionId": "[concat('/подписки/', подписка().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '3913510d-42f4-4e42-8a64-420c390055eb')]",
                                "principalId": "[ссылка(параметры('resourceName')).addonProfiles.omsAgent.identity.objectId]",
                                "scope": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.ContainerService/managedClusters/trstcluster"
                            }
                        }
                    ]
                }
            },
            "зависит от": [
                "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.ContainerService/managedClusters/trstcluster"
            ]
        },
        {
            "apiVersion": "2020-11-01",
            "имя": "trst-vnet",
            "type": "Microsoft.Network/virtualNetworks",
            "местоположение": "центральная Индия",
            "характеристики": {
                "подсети": [
                    {
                        "имя": "по умолчанию",
                        "id": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.Network/virtualNetworks/trst-vnet/subnets/default",
                        "характеристики": {
                            "addressPrefix": "10.240.0.0/16"
                        }
                    }
                ],
                "адресное пространство": {
                    "префиксы адресов": [
                        «10.0.0.0/8»
                    ]
                }
            },
            "теги": {}
        },
        {
            "type": "Microsoft.Ресурсы/развертывания",
            "name": "ClusterSubnetRoleAssignmentDeployment-20211130231648",
            "apiVersion": "2017-05-10",
            "resourceGroup": "трст",
            "subscriptionId": "ae642de8-dea6-4c85-887e-6b6c2ea9a2db",
            "характеристики": {
                "режим": "Инкрементный",
                "шаблон": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "Версия содержания": "1.0.0.0",
                    "параметры": {},
                    "переменные": {},
                    "Ресурсы": [
                        {
                            "type": "Microsoft.Network/virtualNetworks/subnets/providers/roleAssignments",
                            "apiVersion": "2018-09-01-превью",
                            "name": "trst-vnet/default/Microsoft.Authorization/47b6d7b9-cf3c-4b8c-890f-6e938f052be9",
                            "характеристики": {
                                "roleDefinitionId": "[concat('/подписки/', подписка().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '4d97b98b-1d4f-4787-a291-c67834d212e7')]",
                                "principalId": "[ссылка(параметры('resourceName'),'2021-02-01','Full').identity.principalId]",
                                "scope": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.Network/virtualNetworks/trst-vnet/subnets/default"
                            }
                        }
                    ]
                }
            },
            "зависит от": [
                "Microsoft.Network/virtualNetworks/trst-vnet"
            ]
        }
    ],
    "выход": {
        "controlPlaneFQDN": {
            "тип": "строка",
            "value": "[ссылка (concat ('Microsoft.ContainerService/managedClusters/', параметры ('resourceName'))).fqdn]"
        }
    }
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.