You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -131,14 +147,15 @@ If the pre-defined Windows or Linux variants are not sufficient then, you can sp
131
147
```hcl
132
148
module "vmscaleset" {
133
149
source = "kumarvna/vm-scale-sets/azurerm"
134
-
version = "2.2.0"
150
+
version = "2.3.0"
135
151
136
152
# .... omitted
137
153
138
154
os_flavor = "linux"
139
155
linux_distribution_name = "ubuntu1804"
140
-
generate_admin_ssh_key = false
141
-
admin_ssh_key_data = "~/.ssh/id_rsa.pub"
156
+
virtual_machine_size = "Standard_A2_v2"
157
+
admin_username = "azureadmin"
158
+
generate_admin_ssh_key = true
142
159
instances_count = 2
143
160
144
161
custom_image = {
@@ -149,6 +166,8 @@ module "vmscaleset" {
149
166
}
150
167
151
168
# .... omitted
169
+
170
+
}
152
171
```
153
172
154
173
## Custom DNS servers
@@ -233,6 +252,68 @@ When an instance goes through a state change operation because of a PUT, PATCH o
233
252
234
253
The automatic instance repair feature can be enabled while creating a new scale set by setting up the argument `enable_automatic_instance_repair = true` and the grace period can be managed using the argument `grace_period = "PT30M"`. Default grace period is 30 minutes.
235
254
255
+
### `enable_proximity_placement_group` - Achieving the lowest possible latency
256
+
257
+
Placing VMs in a single region reduces the physical distance between the instances. Placing them within a single availability zone will also bring them physically closer together. However, as the Azure footprint grows, a single availability zone may span multiple physical data centers, which may result in a network latency impacting your application.
258
+
259
+
To get VMs as close as possible, achieving the lowest possible latency, you should deploy them within a proximity placement group.
260
+
261
+
A proximity placement group is a logical grouping used to make sure that Azure compute resources are physically located close to each other. Proximity placement groups are useful for workloads where low latency is a requirement.
262
+
263
+
By default, this not enabled and set to disable. To enable the Proximity placement group with this module, set the argument `enable_proximity_placement_group = true`.
264
+
265
+
### `Identity` - Configure managed identities for Azure resources on a VM Scale Sets
266
+
267
+
Managed identities for Azure resources provides Azure services with an automatically managed identity in Azure Active Directory. You can use this identity to authenticate to any service that supports Azure AD authentication, without having credentials in your code.
268
+
269
+
There are two types of managed identities:
270
+
271
+
***System-assigned**: When enabled a system-assigned managed identity an identity is created in Azure AD that is tied to the lifecycle of that service instance. when the resource is deleted, Azure automatically deletes the identity. By design, only that Azure resource can use this identity to request tokens from Azure AD.
272
+
***User-assigned**: A managed identity as a standalone Azure resource. For User-assigned managed identities, the identity is managed separately from the resources that use it.
273
+
274
+
Regardless of the type of identity chosen a managed identity is a service principal of a special type that may only be used with Azure resources. When the managed identity is deleted, the corresponding service principal is automatically removed.
# Configure managed identities for Azure resources on a VM
298
+
# Possible types are `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`.
299
+
managed_identity_type = "UserAssigned"
300
+
managed_identity_ids = [for k in azurerm_user_assigned_identity.example : k.id]
301
+
302
+
# .... omitted for bravity
303
+
304
+
}
305
+
```
306
+
307
+
### `enable_boot_diagnostics` - boot diagnostics to troubleshoot virtual machines
308
+
309
+
Boot diagnostics is a debugging feature for Azure virtual machines (VM) that allows the diagnosis of VM boot failures. Boot diagnostics enables a user to observe the state of their VM as it is booting up by collecting serial log information and screenshots. This module enabled this feature by setting up `enable_boot_diagnostics = true`. Azure Storage Account to be used to store Boot Diagnostics, including Console Output and Screenshots from the Hypervisor. This module supports the existing storage account using the `storage_account_name` argument with a valid name. If we are not passing any storage account, it will utilize a Managed Storage Account to store Boot Diagnostics.
310
+
311
+
### `winrm_protocol` - Enable WinRM wiht HTTPS
312
+
313
+
Window remote management - in short, `WinRM` is a built-in windows protocol/Service which uses soap[simple object access protocol] to connect from another source system. Using WinRM, we can connect the remote system and execute any command there as its native user.
314
+
315
+
WinRM comes pre-installed with all new window OS. We need to enable WinRM service and configure the ports for outside traffic. This module configure `winRM` by setting up `winrm_protocol = "Https"` and `key_vault_certificate_secret_url` value to the Secret URL of a Key Vault Certificate.
316
+
236
317
## Network Security Groups
237
318
238
319
By default, the network security groups connected to Network Interface and allow necessary traffic and block everything else (deny-all rule). Use `nsg_inbound_rules` in this Terraform module to create a Network Security Group (NSG) for network interface and allow it to add additional rules for inbound flows.
@@ -244,14 +325,15 @@ In the Source and Destination columns, `VirtualNetwork`, `AzureLoadBalancer`, an
244
325
```hcl
245
326
module "vmscaleset" {
246
327
source = "kumarvna/vm-scale-sets/azurerm"
247
-
version = "2.2.0"
328
+
version = "2.3.0"
248
329
249
-
# .... omitted
330
+
# .... omitted for bravity
250
331
251
332
os_flavor = "linux"
252
333
linux_distribution_name = "ubuntu1804"
253
-
generate_admin_ssh_key = false
254
-
admin_ssh_key_data = "~/.ssh/id_rsa.pub"
334
+
virtual_machine_size = "Standard_A2_v2"
335
+
admin_username = "azureadmin"
336
+
generate_admin_ssh_key = true
255
337
instances_count = 2
256
338
257
339
nsg_inbound_rules = [
@@ -270,6 +352,39 @@ module "vmscaleset" {
270
352
}
271
353
```
272
354
355
+
## Using exisging Network Security Groups
356
+
357
+
Enterprise environments may need a requirement to use pre-existing NSG groups to maintain capabilities. This module supports existing network security groups usage. To use this feature, set the argument `existing_network_security_group_id` with a valid NSG resource id and remove all NSG inbound rules blocks from the module.
Applying tags to your Azure resources, resource groups, and subscriptions to logically organize them into a taxonomy. Each tag consists of a name and a value pair. For example, you can apply the name `Environment` and the value `Production` to all the resources in production.
0 commit comments