В ходе создания инфраструктуры администратор облачных систем может использовать подключаемый модуль Microsoft Azure для подготовки виртуальных машин на основе подключаемого модуля. Для предоставления логики выделения своим виртуальным машинам можно использовать помощники выделения.
Виртуальные машины можно с легкостью настроить с учетом потребностей инфраструктуры, используя новые свойства Azure. Например, чтобы включить диагностику загрузки виртуальной машины, можно использовать свойство boot_diagnostics
в облачном шаблоне.
- Запустить
- Выключение
- Перезапуск
- Освобождение
Дополнительные сведения о подключаемых модулях и выделении в VMware Aria Automation см. в разделе Проекты и развертывания на основе подключаемого модуля в Automation Assembler
Свойства виртуальной машины
Для виртуальных машин Azure на основе подключаемого модуля обязательными являются следующие свойства.
Свойство | Описание |
---|---|
name |
Имя ресурса, используемое в подключаемом модуле. Для свойства |
virtual_machine_name |
Имя виртуальной машины на портале Azure. Ресурсы Azure, развертываемые с помощью Automation Assembler, должны соответствовать правилам и ограничениям Azure в отношении именования. В противном случае при развертывании возникнет ошибка. Дополнительные сведения см. в статье Ограничения именования ресурсов. |
account |
Облачная учетная запись Microsoft Azure для регионов учетной записи, в которых ваша рабочая группа развертывает облачные шаблоны. Дополнительные сведения см. в разделе Создание облачной учетной записи Microsoft Azure в VMware Aria Automation. |
location |
Регион, в котором будет развернута виртуальная машина. |
resource_group_name |
Имя группы ресурсов. Необходимо создать группу ресурсов на портале Azure. |
Подготовка виртуальной машины Azure с диском данных
В следующем шаблоне представлен способ подготовки виртуальной машины с помощью помощников выделения. В этом примере создается виртуальная машина с подключенным диском данных.
Перед развертыванием этого шаблона выполните следующие действия.
- Создайте облачную учетную запись Microsoft Azure в Automation Assembler, добавьте проект и облачные зоны.
- Создайте группу ресурсов на портале Azure.
- Создайте сетевой интерфейс в группе ресурсов на портале Azure. Сетевой интерфейс должен находиться в том регионе, где будет развернута виртуальная машина Azure.
formatVersion: 1 inputs: UUID: type: string title: UUID resources: Allocations_Compute_1: type: Allocations.Compute properties: {} Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: medium Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Cloud_Azure_ResourceGroup_1: type: Cloud.Azure.ResourceGroup properties: name: e2e-a8n-RG-${input.UUID} useExisting: false Idem_NETWORK: type: Idem.AZURE.NETWORK.VIRTUAL_NETWORKS properties: name: e2e-a8n-idem-virtual-net-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} address_space: - 10.0.0.0/24 subnets: - name: ${resource.Idem_NETWORK.name} address_prefix: 10.0.0.0/24 resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} virtual_network_name: ${resource.Idem_NETWORK.name} Idem_NETWORK_INTERFACE: type: Idem.AZURE.NETWORK.NETWORK_INTERFACES properties: name: e2e-a8n-idem-net-interface-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} ip_configurations: - primary: true name: ipconfig2 private_ip_address: 10.0.0.13 private_ip_address_allocation: Static private_ip_address_version: IPv4 subnet_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/' + resource.Idem_NETWORK.resource_group_name + '/providers/Microsoft.Network/virtualNetworks/' + resource.Idem_NETWORK.name + '/subnets/' + resource.Idem_NETWORK.subnets[0].name} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} network_interface_name: ${resource.Idem_NETWORK_INTERFACE.name} Idem_DATA_DISK: type: Idem.AZURE.COMPUTE.DISKS properties: name: e2e-a8n-idem-data-disk-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} disk_name: ${resource.Idem_DATA_DISK.name} disk_size_gb: 10 creation_data: create_option: Empty encryption: disk_encryption_set_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.Compute/diskEncryptionSets/DND-e2e-a8n-disk-encryption'} type: EncryptionAtRestWithCustomerKey Idem_VM: type: Idem.AZURE.COMPUTE.VIRTUAL_MACHINES properties: name: e2e-a8n-idem-vm-${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} resource_group_name: ${resource.Idem_NETWORK.resource_group_name} virtual_machine_name: ${resource.Idem_VM.name} network_interface_ids: - ${resource.Idem_NETWORK_INTERFACE.resource_id} os_profile: admin_username: my-admin-username computer_name: machine-name admin_password: admin virtual_machine_size: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} storage_image_reference: image_sku: ${split(resource.Allocations_Image_1.selectedImageId, ':')[2]} image_publisher: ${split(resource.Allocations_Image_1.selectedImageId, ':')[0]} image_version: ${split(resource.Allocations_Image_1.selectedImageId, ':')[3]} image_offer: ${split(resource.Allocations_Image_1.selectedImageId, ':')[1]} storage_os_disk: storage_account_type: Standard_LRS disk_name: e2e-a8n-idem-os-disk-${input.UUID} disk_caching: ReadWrite disk_size_in_GB: 30 disk_create_option: FromImage disk_delete_option: Delete storage_data_disks: - disk_id: ${resource.Idem_DATA_DISK.resource_id} disk_logical_unit_number: 3 disk_create_option: Attach disk_delete_option: Delete disk_size_in_GB: 10 disk_name: ${resource.Idem_DATA_DISK.disk_name} Cloud_Service_Azure_SQL_Server_1: type: Cloud.Service.Azure.SQL.Server properties: name: e2e-a8n-db-server-puca-${input.UUID} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} version: '' administrator_login: [email protected] resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} administrator_login_password: admin Idem_AZURE_SQL_DATABASE_DATABASES_1: type: Idem.AZURE.SQL_DATABASE.DATABASES properties: name: e2e-a8n-idem-sql-db-${input.UUID} database_name: e2e-a8n-idem-sql-db-${input.UUID} server_name: ${resource.Cloud_Service_Azure_SQL_Server_1.name} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} tags: tag-key: tag-value sku: name: GP_Gen5 tier: GeneralPurpose family: Gen5 capacity: 2 requested_backup_storage_redundancy: Local resource_group_name: ${resource.Idem_NETWORK.resource_group_name} read_scale: Disabled Idem_AZURE_STORAGE_RESOURCE_PROVIDER_STORAGE_ACCOUNTS_1: type: Idem.AZURE.STORAGE_RESOURCE_PROVIDER.STORAGE_ACCOUNTS dependsOn: - Idem_NETWORK properties: name: e2ea8nidemstacct${input.UUID} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} location: ${resource.Allocations_Compute_1.selectedRegion.id} sku_name: Standard_LRS account_name: e2ea8nidemstacct${input.UUID} resource_group_name: ${resource.Cloud_Azure_ResourceGroup_1.resourceName} identity: type: UserAssigned user_assigned_identities: /subscriptions/svpvln45-brk0-mzca-7yxh-dla7h19zxyn3/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DND-user-assigned-managed-identity: {} encryption_service: encryption_key_source: Microsoft.Keyvault blob_encryption_key_type: Account file_encryption_key_type: Account customer_managed_key: key_name: DND-e2e-a8n-key key_vault_uri: https://dnd-e2e-a8n-key-vault.vault.azure.net/ key_version: '' user_assigned_identity_id: ${'/subscriptions/' + resource.Idem_NETWORK.subscription_id + '/resourceGroups/DND-static-RG-for-automation/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DND-user-assigned-managed-identity'} immutability_policy: allow_protected_append_writes: true period_since_creation_in_days: 5 state: Unlocked
Если к виртуальной машине необходимо подключить дополнительные диски, можно обновить схему элементов для ресурса виртуальной машины и добавить новый диск данных в свойстве storage_data_disks
.
Подготовка виртуальной машины Azure с помощью cloud-init
В следующих шаблонах представлен способ подготовки виртуальной машины Azure с помощью cloud-init.
Сначала следует определить код cloud-init в качестве входных данных в облачном шаблоне, а затем использовать значение в свойстве custom_data
. Свойство custom_data
принимает только строку в кодировке base64, поэтому требуется преобразовать настраиваемые данные с помощью функции base64_encoded
.
inputs: init-data: type: string default: | some multiline maxLength: 9999
resources: Idem_AZURE_COMPUTE_VIRTUAL_MACHINES_1: type: Idem.AZURE.COMPUTE.VIRTUAL_MACHINES properties: ... os_profile: ... custom_data: ${base64_encode(input.init-data)}