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.
- 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 are located in the examples folder.
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"
}
Name | Version |
---|---|
terraform | >= 0.13.0 |
azurerm | >=2.37.0 |
Name | Version |
---|---|
azurerm | >=2.37.0 |
null | n/a |
template | n/a |
No Modules.
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 |
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 specifies product deployment and license entitlements for the platform.
Use Terraform variables for automated configuration.
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 |
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 |
Use the web browser to perform additional manual configuration after the intance is deployed.
- From Settings navigate to License Manager, Entitlements
- Click Install Entitlements
- Use one of the following methods to add entitlements (#1 is prefered)
- 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 convenienceterraform destroy
will unhost remaining entitlements. However, if instance state is manually manipulated you may need to contact Spirent support to release entitlements for you. - Install a license entitlement file obtained from Spirent support
- Login to <your_org>.spirentaion.com and select entitlements to host in the new instance