Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

ProductVersionBase OSStock Keeping Unit (SKU)
EXAScaler Cloud5.2.6Red Hat Enterprise Linux 7.9exascaler_cloud_5_2_redhat
EXAScaler Cloud5.2.6CentOS Linux 7.9exascaler_cloud_5_2_centos
EXAScaler Cloud6.0.1Red Hat Enterprise Linux 7.9exascaler_cloud_6_0_redhat
EXAScaler Cloud6.0.1CentOS Linux 7.9exascaler_cloud_6_0_centos
EXAScaler Cloud6.1.0Red Hat Enterprise Linux 7.9exascaler_cloud_6_1_redhat
EXAScaler Cloud6.1.0CentOS Linux 7.9exascaler_cloud_6_1_centos

Prerequisites

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
languagebash
themeMidnight
$ 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

VariableTypeDefaultDescription
prefixstringnullEXAScaler Cloud custom deployment prefix. Set this option to add a custom prefix to all created objects.
tagsmap{}EXAScaler Cloud custom deployment tags. Set this option to add a custom tags to all created objects. Learn more about Azure tags.
fsnamestringexacloudEXAScaler filesystem name. Learn more about Lustre filesystem.
subscriptionstring00000000-0000-0000-0000-000000000000Subscription ID - please use ID of you active Azure subscription. Learn more Azure subscriptions.
locationstringWest USAzure region to manage resources. Learn more about Azure geography.

Availability options

VariableTypeDefaultDescription
availability.typestringnoneAvailability 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.zoneinteger1Availability 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

VariableTypeDefaultDescription
resource_group.newbooltrueCreate a new resource group, or use an existing one: true or false.
resource_group.namestringexisting-resource-groupExisting resource group name, will be using if new is false.

Learn more about Azure resource groups.

Proximity placement group options

VariableTypeDefaultDescription
proximity_placement_group.newbooltrueCreate a new proximity placement group, or use an existing one: true or false.
proximity_placement_group.namestringexisting-proximity-placement-groupExisting proximity placement group name, will be using if new is false.

Learn more about Azure proximity placement groups.

Network options

VariableTypeDefaultDescription
network.newbooltrueCreate a new network, or use an existing one: true or false.
network.namestringexisting-networkExisting network name, will be using only if new option is false.
network.addressstring10.0.0.0/8IP address in CIDR notation for the new virtual network.

Learn more about Azure virtual networks.

Subnet options

VariableTypeDefaultDescription
subnet.newbooltrueCreate a new subnet, or use an existing one: true or false.
subnet.namestringexisting-subnetExisting subnet name, will be using only if new option is false.
network.addressstring10.0.0.0/24IP address in CIDR notation for the new subnet.

Learn more about Azure virtual networks and subnets.

Security options

VariableTypeDefaultDescription
security.usernamestringstackUser name for remote SSH access. Learn more about Azure SSH options.
security.ssh_public_keystring~/.ssh/id_rsa.pubPath 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_sshbooltruetrue or false: enable or disable remote SSH access.
security.enable_httpbooltruetrue or false, enable or disable remote HTTP access.
security.ssh_source_rangeslist(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_rangeslist(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

VariableTypeDefaultDescription
boot.disk_typestringStandardSSD_LRSSpecifies the type of managed disk to create:
  • Standard_LRS
  • Premium_LRS
  • StandardSSD_LRS
boot.disk_cachestringReadWriteSpecifies the caching requirements for the target disk:
  • None
  • ReadOnly
  • ReadWrite
boot.auto_deletebooltrueDelete the boot disk automatically when deleting the virtual machine: trueor false.
boot.disk_sizeinteger64Boot disk size in GB.

Learn more about Azure disks types.

Source image options

VariableTypeDefaultDescription
image.publisherstringddn-whamcloud-5345716Specifies the publisher of the image used to create the virtual machine.
image.offerstringexascaler_cloudSpecifies the offer of the image used to create the virtual machine.
image.skustringexascaler_cloud_6_1_centosSpecifies the SKU of the image used to create the virtual machine. EXAScaler Cloud 5.2 images:
  • exascaler_cloud_5_2_centos
  • exascaler_cloud_5_2_redhat
EXAScaler Cloud 6.0 images:
  • exascaler_cloud_6_0_centos
  • exascaler_cloud_6_0_redhat
EXAScaler Cloud 6.1 images:
  • exascaler_cloud_6_1_centos
  • exascaler_cloud_6_1_redhat
image.versionstringlatestSpecifies the version of the image used to create the virtual machine.
image.acceptboolfalseAllows automatically accepting the legal terms for a Marketplace image.

Learn more about Azure disk images.

Storage account options

VariableTypeDefaultDescription
storage_account.kindstringStorageV2Defines the kind of account. Valid options are:
  • BlobStorage
  • BlockBlobStorage
  • FileStorage
  • Storage
  • StorageV2
storage_account.tierstringStandardDefines the tier to use for this storage account. Valid options are:
  • Standard
  • Premium
storage_account.replicationstringLRSDefines the type of replication to use for this storage account. Valid options are:
  • LRS
  • GRS
  • RAGRS
  • ZRS
  • GZRS
  • RAGZRS

Learn more about Azure storage accounts.

Management server options

VariableTypeDefaultDescription
mgs.node_typestringStandard_F4sType of management server. Learn more about Azure performance considerations.
mgs.node_countinteger1Number of management servers: 1.
mgs.public_ipbooltrueAssign a public IP address: true or false. Learn more about Azure public IP addresses.
mgs.accelerated_networkboolfalseEnable accelerated networking. Learn more about Azure accelerated networking.

Management target options

VariableTypeDefaultDescription
mgt.disk_typestringStandardSSD_LRSSpecifies the type of managed disk to create the management target:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
mgt.disk_cachestringNoneSpecifies the caching requirements for the management target:
  • None
  • ReadOnly
  • ReadWrite
mgt.disk_sizeinteger256Specifies the size of the management target in GB.
mgt.disk_countinteger1Specifies the number of management targets: 1-128.
mgt.disk_raidboolfalseCreate striped management target: true or false.

Learn more about Azure disks types

Monitoring target options

VariableTypeDefaultDescription
mnt.disk_typestringStandardSSD_LRSSpecifies the type of managed disk to create the monitoring target:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
mnt.disk_cachestringNoneSpecifies the caching requirements for the monitoring target:
  • None
  • ReadOnly
  • ReadWrite
mnt.disk_sizeinteger128Specifies the size of the monitoring target in GB.
mnt.disk_countinteger1Specifies the number of monitoring targets: 1-128.
mnt.disk_raidboolfalseCreate striped monitoring target: true or false.

Learn more about Azure disks types

Metadata server options

VariableTypeDefaultDescription
mds.node_typestringStandard_E8s_v3Type of metadata server. Learn more about Azure performance considerations.
mds.node_countinteger1Number of metadata servers: 1-32.
mds.public_ipboolfalseAssign a public IP address: true or false. Learn more about Azure public IP addresses.
mds.accelerated_networkboolfalseEnable accelerated networking. Learn more about Azure accelerated networking.

Metadata target options

VariableTypeDefaultDescription
mdt.disk_typestringPremium_LRSSpecifies the type of managed disk to create the metadata target:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
mdt.disk_cachestringNoneSpecifies the caching requirements for the metadata target:
  • None
  • ReadOnly
  • ReadWrite
mdt.disk_sizeinteger512Specifies the size of the metadata target in GB.
mdt.disk_countinteger1Specifies the number of metadata targets: 1-128.
mdt.disk_raidboolfalseCreate striped metadata target: true or false.

Learn more about Azure disks types

Object Storage server options

VariableTypeDefaultDescription
oss.node_typestringStandard_Ds16_v3Type of object storage server. Learn more about Azure performance considerations.
oss.node_countinteger4Number of object storage servers: 1-2000.
oss.public_ipboolfalseAssign a public IP address: true or false. Learn more about Azure public IP addresses.
oss.accelerated_networkboolfalseEnable accelerated networking. Learn more about Azure accelerated networking.

Object Storage target options

VariableTypeDefaultDescription
ost.disk_typestringStandard_LRSSpecifies the type of managed disk to create the object storage target:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
ost.disk_cachestringNoneSpecifies the caching requirements for the object storage target:
  • None
  • ReadOnly
  • ReadWrite
ost.disk_sizeinteger512Specifies the size of the object storage target in GB.
ost.disk_countinteger6Specifies the number of object storage targets: 1-128.
ost.disk_raidboolfalseCreate striped object storage target: true or false.

Learn more about Azure disks types

Compute client options

VariableTypeDefaultDescription
cls.node_typestringStandard_Ds16_v3Type of compute client. Learn more about Azure performance considerations.
cls.node_countinteger4Number of compute clients.
cls.public_ipboolfalseAssign a public IP address: true or false. Learn more about Azure public IP addresses.
cls.accelerated_networkboolfalseEnable accelerated networking. Learn more about Azure accelerated networking.

Compute client target options

VariableTypeDefaultDescription
clt.disk_typestringStandard_LRSSpecifies the type of managed disk to create the compute target:
  • Standard_LRS
  • StandardSSD_LRS
  • Premium_LRS
clt.disk_cachestringNoneSpecifies the caching requirements for the compute target:
  • None
  • ReadOnly
  • ReadWrite
clt.disk_sizeinteger32Specifies the size of the compute target in GB.
clt.disk_countinteger0Specifies 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:

...