Skip to content

Spirent-Terraform-Modules/terraform-azurerm-aion

Repository files navigation

Azure RM Spirent AION Platform Terraform

Image of Spirent AION

Description

Spirent AION is a cloud platform for Spirent products and license management. This Terraform module deploys the Spirent AION Azure Image on Azure using your spirentaion.com account.

After terraform apply finishes you will be able to point your browser at the instance_public_ips addresses to use the platform or perform additional configuration.

Set enable_provisioner=false to run the configuration wizard manually in a web browser. Otherwise, when enable_provisioner=true login to https://<your_public_ip> using the values of admin_email and admin_password.

See product configuration for automated and manual configuration details.

Prerequisites

  • Azure user credentials (az login)
  • Accept Spirent AION Image product terms on Azure Marketplace
    • az vm image list --all --publisher spirentcommunications1594084187199 --offer aion
    • az vm image terms accept --urn <selected_urn>
  • Create public and private key files

Terraform examples

Terraform examples are located in the examples folder.

Basic usage

module "aion" {
  source = "git::https://github.com/Spirent-Terraform-Modules/terraform-azurerm-aion"

  resource_group_name     = "default"
  resource_group_location = "West US 2"
  mgmt_plane_subnet_id    = "subnet-id-123456"

  ingress_cidr_blocks = ["0.0.0.0/0"]

  public_key  = "./bootstrap_public_key_file"
  private_key = "./bootstrap_private_key_file"

  aion_url       = "https://spirent.spirentaion.com"
  aion_user      = "[email protected]"
  aion_password  = "aion-password"
  admin_password = "admin-password"
}

Requirements

Name Version
terraform >= 0.13.0
azurerm >=2.37.0

Providers

Name Version
azurerm >=2.37.0
null n/a
template n/a

Modules

No Modules.

Resources

Name
azurerm_image
azurerm_linux_virtual_machine
azurerm_network_interface
azurerm_network_interface_security_group_association
azurerm_network_security_group
azurerm_public_ip
null_resource
template_file

Inputs

Name Description Type Default Required
admin_email Cluster admin user email. Use this to login to instance web page. Default is obtained from AION user information. string "" no
admin_first_name Cluster admin user first name. Default is obtained from AION user information. string "" no
admin_last_name Cluster admin user last name. Default is obtained from AION user information. string "" no
admin_password Cluster admin user password. Use this to login to the instance web page. string n/a yes
admin_username Administrator user name. string n/a yes
aion_image_name AION image created from private vhd file. This variable overrides the marketplace image. string "" no
aion_password AION user password for aion_url string n/a yes
aion_url AION URL string n/a yes
aion_user AION user registered on aion_url string n/a yes
cluster_names Instance cluster names. List length must equal instance_count. list(string) [] no
deploy_location Location name for deployed product instances. string "location1" no
deploy_products List of products to deploy. See Product List below for details. list(map(string)) [] no
dest_dir Destination directory on the instance where provisioning files will be copied string "~" no
enable_provisioner Enable provisioning. When enabled instances will be initialized with the specified variables. bool true no
entitlements Install hosted entitlements from organization's AION platform. See Entitlement List below for details. list(map(string)) [] no
http_enabled Allow HTTP access as well as HTTPS. Normally this is not recommended. bool false no
ingress_cidr_blocks List of management interface ingress IPv4/IPv6 CIDR ranges. list(string) n/a yes
instance_count Number of instances to create. number 1 no
instance_name Name assigned to the AION instance. An instance number will be appended to the name. string "aion" no
instance_size The Azure Virtual Machine SKU. string n/a yes
local_admin_password Cluster local admin password for instance SSH access. Will use admin_password if not specified. string "" no
marketplace_version The Spirent AION image version (e.g. 0517.0.0). When not specified, the latest marketplace image will be used. string "latest" no
metrics_opt_out Opt-out of Spirent metrics data collection bool false no
mgmt_plane_subnet_id Management public Azure subnet ID. string n/a yes
node_names Instance cluster node names. List length must equal instance_count. list(string) [] no
node_storage_provider Cluster node storage provider string "local" no
node_storage_remote_uri Cluster node storage URI. Leave blank for default when provider is local string "" no
os_disk_size_gb Size of the OS disk in GB. When null size will be determined from the image. number null no
private_key File path to private key string n/a yes
public_key File path to public key. string n/a yes
resource_group_location RG location in Azure string n/a yes
resource_group_name RG name in Azure string n/a yes

Outputs

Name Description
instance_ids List of instance IDs
instance_private_ips List of private IP addresses assigned to the instances, if applicable
instance_public_ips List of public IP addresses assigned to the instances, if applicable

Product Configuration

Product configuration specifies product deployment and license entitlements for the platform.

Automated

Use Terraform variables for automated configuration.

Entitlement List

The entitlement list specifies which license entitlements are hosted to the new AION platform. An empty list will not add entitlements. Use the following options to define each entitlement:

Name Description Type Default Required
product Product name string n/a yes
license License name string n/a yes
number Entitlement number. When specified number must match otherwise any will match. number n/a no

Product List

The product list specifies which products will be deployed. An empty list will not deploy any products. Use the following options to define each product deployment:

Name Description Type Default Required
name Product name string n/a yes
version Product version string n/a yes

Manual

Use the web browser to perform additional manual configuration after the intance is deployed.

Add License Entitlements

  1. From Settings navigate to License Manager, Entitlements
  2. Click Install Entitlements
  3. Use one of the following methods to add entitlements (#1 is prefered)
    1. Login to <your_org>.spirentaion.com and select entitlements to host in the new instance
      Note: Hosted entitlements should be released before destroying the instance. As a convenience terraform destroy will unhost remaining entitlements. However, if instance state is manually manipulated you may need to contact Spirent support to release entitlements for you.
    2. Install a license entitlement file obtained from Spirent support

Add Products

  1. From Settings navigate to Settings, Add New Products
  2. Click Install New Products
  3. Select products and versions and click Install

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •