Page History
...
Automated deployment is possible with EXAScaler Cloud Terraform Scripts.
The steps below will show how to create a EXAScaler Cloud environment on Microsoft Azure using Terraform.
Supported products
| Product | Version | Base OS | Stock Keeping Unit (SKU) |
|---|---|---|---|
| EXAScaler Cloud | 5.2.6 | Red Hat Enterprise Linux 7.9 | exascaler_cloud_5_2_redhat |
| EXAScaler Cloud | 5.2.6 | CentOS Linux 7.9 | exascaler_cloud_5_2_centos |
| EXAScaler Cloud | 6.0.1 | Red Hat Enterprise Linux 7.9 | exascaler_cloud_6_0_redhat |
| EXAScaler Cloud | 6.0.1 | CentOS Linux 7.9 | exascaler_cloud_6_0_centos |
| EXAScaler Cloud | 6.1.0 | Red Hat Enterprise Linux 7.9 | exascaler_cloud_6_1_redhat |
| EXAScaler Cloud | 6.1.0 | CentOS Linux 7.9 | exascaler_cloud_6_1_centos |
Prerequisites
- You need a Microsoft account
- Your system needs the Microsoft Azure CLI as well as Terraform
Before deploy Terraform code for Microsoft Azure, you will need to authenticate under the Microsoft account you used to log into the Microsoft Azure Portal. You will use a Microsoft account and its credentials to allow Terraform to deploy resources.
DDN EXAScaler Cloud in the Azure Marketplace have additional license and purchase terms that you must accept before you can deploy them programmatically. To deploy an environment from this image, you'll need to accept the image's terms the first time you use it, once per subscription.
Steps to authenticate via Microsoft account
Obtains access credentials for your user account via a web-based authorization flow. When this command completes successfully, it sets the active account in the current configuration to the account specified. Learn more about Azure authentication.
| Code Block | ||||
|---|---|---|---|---|
| ||||
$ az login
[
{
"cloudName": "AzureCloud",
"homeTenantId": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"isDefault": true,
"managedByTenants": [],
"name": "Subscription-Name",
"state": "Enabled",
"tenantId": "00000000-0000-0000-0000-000000000000",
"user": {
"name": "user@domain.com",
"type": "user"
}
}
] |
...
List of available variables
Common options
| Variable | Type | Default | Description |
|---|---|---|---|
prefix | string | null | EXAScaler Cloud custom deployment prefix. Set this option to add a custom prefix to all created objects. |
tags | map | {} | EXAScaler Cloud custom deployment tags. Set this option to add a custom tags to all created objects. Learn more about Azure tags. |
fsname | string | exacloud | EXAScaler filesystem name. Learn more about Lustre filesystem. |
subscription | string | 00000000-0000-0000-0000-000000000000 | Subscription ID - please use ID of you active Azure subscription. Learn more Azure subscriptions. |
location | string | West US | Azure region to manage resources. Learn more about Azure geography. |
Availability options
| Variable | Type | Default | Description |
|---|---|---|---|
availability.type | string | none | Availability type: none - no infrastructure redundancy required, set - to create an availability set and automatically distribute resources across multiple fault domains, zone - to physically separate resources within an Azure region. Learn more about Azure availability options. |
availability.zone | integer | 1 | Availability zone - unique physical locations within a Azure region. Use 1, 2 or 3 to explicitly specify the availability zone. Learn more about Azure availability zones. |
Resource group options
| Variable | Type | Default | Description |
|---|---|---|---|
resource_group.new | bool | true | Create a new resource group, or use an existing one: true or false. |
resource_group.name | string | existing-resource-group | Existing resource group name, will be using if new is false. |
Learn more about Azure resource groups.
Proximity placement group options
| Variable | Type | Default | Description |
|---|---|---|---|
proximity_placement_group.new | bool | true | Create a new proximity placement group, or use an existing one: true or false. |
proximity_placement_group.name | string | existing-proximity-placement-group | Existing proximity placement group name, will be using if new is false. |
Learn more about Azure proximity placement groups.
Network options
| Variable | Type | Default | Description |
|---|---|---|---|
network.new | bool | true | Create a new network, or use an existing one: true or false. |
network.name | string | existing-network | Existing network name, will be using only if new option is false. |
network.address | string | 10.0.0.0/8 | IP address in CIDR notation for the new virtual network. |
Learn more about Azure virtual networks.
Subnet options
| Variable | Type | Default | Description |
|---|---|---|---|
subnet.new | bool | true | Create a new subnet, or use an existing one: true or false. |
subnet.name | string | existing-subnet | Existing subnet name, will be using only if new option is false. |
network.address | string | 10.0.0.0/24 | IP address in CIDR notation for the new subnet. |
Learn more about Azure virtual networks and subnets.
Security options
| Variable | Type | Default | Description |
|---|---|---|---|
security.username | string | stack | User name for remote SSH access. Learn more about Azure SSH options. |
security.ssh_public_key | string | ~/.ssh/id_rsa.pub | Path to the local SSH public key. This file will be added to admin home directory as .ssh/authorized_keys. Learn more about Azure SSH options. |
security.enable_ssh | bool | true | true or false: enable or disable remote SSH access. |
security.enable_http | bool | true | true or false, enable or disable remote HTTP access. |
security.ssh_source_ranges | list(string) | [0.0.0.0/0] | Source IP ranges for remote SSH access in CIDR notation. Learn more about Azure network security groups. |
security.http_source_ranges | list(string) | [0.0.0.0/0] | Source IP ranges for remote HTTP access in CIDR notation. Learn more Azure network security groups. |
Boot disk options
| Variable | Type | Default | Description |
|---|---|---|---|
boot.disk_type | string | StandardSSD_LRS | Specifies the type of managed disk to create:
|
boot.disk_cache | string | ReadWrite | Specifies the caching requirements for the target disk:
|
boot.auto_delete | bool | true | Delete the boot disk automatically when deleting the virtual machine: trueor false. |
boot.disk_size | integer | 64 | Boot disk size in GB. |
Learn more about Azure disks types.
Source image options
| Variable | Type | Default | Description |
|---|---|---|---|
image.publisher | string | ddn-whamcloud-5345716 | Specifies the publisher of the image used to create the virtual machine. |
image.offer | string | exascaler_cloud | Specifies the offer of the image used to create the virtual machine. |
image.sku | string | exascaler_cloud_6_1_centos | Specifies the SKU of the image used to create the virtual machine. EXAScaler Cloud 5.2 images:
|
image.version | string | latest | Specifies the version of the image used to create the virtual machine. |
image.accept | bool | false | Allows automatically accepting the legal terms for a Marketplace image. |
Learn more about Azure disk images.
Storage account options
| Variable | Type | Default | Description |
|---|---|---|---|
storage_account.kind | string | StorageV2 | Defines the kind of account. Valid options are:
|
storage_account.tier | string | Standard | Defines the tier to use for this storage account. Valid options are:
|
storage_account.replication | string | LRS | Defines the type of replication to use for this storage account. Valid options are:
|
Learn more about Azure storage accounts.
Management server options
| Variable | Type | Default | Description |
|---|---|---|---|
mgs.node_type | string | Standard_F4s | Type of management server. Learn more about Azure performance considerations. |
mgs.node_count | integer | 1 | Number of management servers: 1. |
mgs.public_ip | bool | true | Assign a public IP address: true or false. Learn more about Azure public IP addresses. |
mgs.accelerated_network | bool | false | Enable accelerated networking. Learn more about Azure accelerated networking. |
Management target options
| Variable | Type | Default | Description |
|---|---|---|---|
mgt.disk_type | string | StandardSSD_LRS | Specifies the type of managed disk to create the management target:
|
mgt.disk_cache | string | None | Specifies the caching requirements for the management target:
|
mgt.disk_size | integer | 256 | Specifies the size of the management target in GB. |
mgt.disk_count | integer | 1 | Specifies the number of management targets: 1-128. |
mgt.disk_raid | bool | false | Create striped management target: true or false. |
Learn more about Azure disks types
Monitoring target options
| Variable | Type | Default | Description |
|---|---|---|---|
mnt.disk_type | string | StandardSSD_LRS | Specifies the type of managed disk to create the monitoring target:
|
mnt.disk_cache | string | None | Specifies the caching requirements for the monitoring target:
|
mnt.disk_size | integer | 128 | Specifies the size of the monitoring target in GB. |
mnt.disk_count | integer | 1 | Specifies the number of monitoring targets: 1-128. |
mnt.disk_raid | bool | false | Create striped monitoring target: true or false. |
Learn more about Azure disks types
Metadata server options
| Variable | Type | Default | Description |
|---|---|---|---|
mds.node_type | string | Standard_E8s_v3 | Type of metadata server. Learn more about Azure performance considerations. |
mds.node_count | integer | 1 | Number of metadata servers: 1-32. |
mds.public_ip | bool | false | Assign a public IP address: true or false. Learn more about Azure public IP addresses. |
mds.accelerated_network | bool | false | Enable accelerated networking. Learn more about Azure accelerated networking. |
Metadata target options
| Variable | Type | Default | Description |
|---|---|---|---|
mdt.disk_type | string | Premium_LRS | Specifies the type of managed disk to create the metadata target:
|
mdt.disk_cache | string | None | Specifies the caching requirements for the metadata target:
|
mdt.disk_size | integer | 512 | Specifies the size of the metadata target in GB. |
mdt.disk_count | integer | 1 | Specifies the number of metadata targets: 1-128. |
mdt.disk_raid | bool | false | Create striped metadata target: true or false. |
Learn more about Azure disks types
Object Storage server options
| Variable | Type | Default | Description |
|---|---|---|---|
oss.node_type | string | Standard_Ds16_v3 | Type of object storage server. Learn more about Azure performance considerations. |
oss.node_count | integer | 4 | Number of object storage servers: 1-2000. |
oss.public_ip | bool | false | Assign a public IP address: true or false. Learn more about Azure public IP addresses. |
oss.accelerated_network | bool | false | Enable accelerated networking. Learn more about Azure accelerated networking. |
Object Storage target options
| Variable | Type | Default | Description |
|---|---|---|---|
ost.disk_type | string | Standard_LRS | Specifies the type of managed disk to create the object storage target:
|
ost.disk_cache | string | None | Specifies the caching requirements for the object storage target:
|
ost.disk_size | integer | 512 | Specifies the size of the object storage target in GB. |
ost.disk_count | integer | 6 | Specifies the number of object storage targets: 1-128. |
ost.disk_raid | bool | false | Create striped object storage target: true or false. |
Learn more about Azure disks types
Compute client options
| Variable | Type | Default | Description |
|---|---|---|---|
cls.node_type | string | Standard_Ds16_v3 | Type of compute client. Learn more about Azure performance considerations. |
cls.node_count | integer | 4 | Number of compute clients. |
cls.public_ip | bool | false | Assign a public IP address: true or false. Learn more about Azure public IP addresses. |
cls.accelerated_network | bool | false | Enable accelerated networking. Learn more about Azure accelerated networking. |
Compute client target options
| Variable | Type | Default | Description |
|---|---|---|---|
clt.disk_type | string | Standard_LRS | Specifies the type of managed disk to create the compute target:
|
clt.disk_cache | string | None | Specifies the caching requirements for the compute target:
|
clt.disk_size | integer | 32 | Specifies the size of the compute target in GB. |
clt.disk_count | integer | 0 | Specifies the number of compute targets. |
Learn more about Azure disks types
...
You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
Validate configuration options:
...