Created by
Chafik Belhaoues

Azure VMs with availability set, load balancer and key vault

    Azure,VM,Availability set,LB,Load balancer,Key vault,Secret management
    Azure VMs with availability set, load balancer and key vault
    ## Description This architecture allows you to create Azure VMs in an availability set with load balancer & LB rules behind a public IP and key vault for secret management. This architecture is highly customizable through variables and Terraform functions, so you can easily save it as a reference architecture in the template catalog if you want your team to use it by just updating the variables. **N.B:** - The Terraform code is automatically generated with best practices and contains variables that you can customize to fir your needs. - You have full control to change, add, delete resources or their configuration. The newly generated code will reflect these changes. - You can replace some resources with Terraform modules. > terraform apply status: successful > ## Architecture components Here are the components of this architecture: - Their network interfaces, with a NAT configuration if needed - Password for admin users are randomly generated and stored in a key vault with a restricted access - Load balancer in front with a public IP address and custom rules - Storage account - LB backend address pool ## Requirements | Name | Configuration | | --- | --- | | Terraform | all versions | | Provider | Azure | | Provider version | >= 3.108.0 | | Access | Contributor access | ## How to use the architecture Clone the architecture and modify the following variables according to your needs: | Variable | Description | | --- | --- | | dns_name | The name that will be used by the public IP to create a public URL | | hostname | The hostname of the VMs. It uses count.index to have different names | | image_publisher | Information about the publisher of the image used to create the OS | | kv_name | Key vault name | | lb_ip_dns_name | The DNS name associated with the load balancer | | prefix | A string added before names. This is not required, it used just to show how you can have naming conventions | | rg_name | The name of resource group | | tags | Tags that will be added in all resources that support them | | vm_size | The size of the virtual machine | | vms | Number of VMs to create | | vnet_addr_space | The network address space of the virtual network | | vnet_name | The name of the virtual network | **N.B:** - Feel free to remove the resources that are not relevant to your use-case. - Some variables have default values, please change it if it doesn't fit your deployment. ## Maintainer(s) You can reach out to these maintainers if you need help or assistance: - [Brainboard team](mailto:support@brainboard.co)

    It’s up to you now to build great things.