Skip to content

Latest commit

 

History

History
122 lines (108 loc) · 15.3 KB

File metadata and controls

122 lines (108 loc) · 15.3 KB

New VNet Template

The following steps will provision Azure resources (new vnet, bastion, ansible jump host, compute and storage instances) and configures IBM Spectrum Scale cloud solution.

  1. Change working directory to azure_scale_templates/azure_new_vnet_scale/.

    cd ibm-spectrum-scale-cloud-install/azure_scale_templates/azure_new_vnet_scale/
    
  2. Create terraform variable definitions file (terraform.tfvars.json) and provide infrastructure inputs.

    Note: In case of multi availability zone, provide 3 AZ values for the vpc_availability_zone keyword. Ex: "vnet_availability_zones"=["1", "2", "3"]

    Minimal Example-1 (create compute, storage cluster with managed disks and remote mount configuration):

    {
        "client_id": "f5b6a5cf-fbdf-4a9f-b3b8-3c2cd00225a4",
        "client_secret": "0e760437-bf34-4aad-9f8d-870be799c55d",
        "tenant_id": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "subscription_id": "e652d8de-aea2-4177-a0f1-7117adc604ee",
        "vnet_location": "eastus",
        "vnet_availability_zones": ["1"],
        "resource_group_name": "spectrum-scale",
        "compute_cluster_ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDeFX5ZECXQwqTjczwuTBWYtx0joQ+2d16z/6DDGcouJ42hD0Pslx2m94jl+dyeb+1NFETBRAJ5PrVd+LjgGeEkPwb0Gu3VLRR2gmcAzMjo6FQewBFds1mBh2fi93bolUG3FHf34su6JYE5Ei7+8/0X9zGCPOKFd6bjj19cvy0kN/LUL4n9dnKWM3vnXU2Tj6aDEiwDrQk87c6nmdxyD4J1MDCab/ARK1dK7iAcy9QMod5UBQpDQu7kH054Mfc21ymIK/EkJZ9gMIuP/5q1IGw8NOlQuhIVJSKvS41EVIeY5w0kIWDIkTEKOYZiQ2br2ymWjQ/ 1ScsVyqsxROPhi0EP9aYJ2p0UJDEN9V1lg1SWaPN8TKhG/CAlQzGXdnc20a98cqxu5jzvj8Q7SQoAWL0ZMe1zUVJVs0XvBQItDLW6ZDpGyWTsxAcDwLqYCJubrg3aja17iFa+MCsa5esgY4GsawPtV+o9Dqx63m3joEH/fo53vNpJ6wlwaRK65hE5pkM=",
        "storage_cluster_ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDeFX5ZECXQwqTjczwuTBWYtx0joQ+2d16z/6DDGcouJ42hD0Pslx2m94jl+dyeb+1NFETBRAJ5PrVd+LjgGeEkPwb0Gu3VLRR2gmcAzMjo6FQewBFds1mBh2fi93bolUG3FHf34su6JYE5Ei7+8/0X9zGCPOKFd6bjj19cvy0kN/LUL4n9dnKWM3vnXU2Tj6aDEiwDrQk87c6nmdxyD4J1MDCab/ARK1dK7iAcy9QMod5UBQpDQu7kH054Mfc21ymIK/EkJZ9gMIuP/5q1IGw8NOlQuhIVJSKvS41EVIeY5w0kIWDIkTEKOYZiQ2br2ymWjQ/ 1ScsVyqsxROPhi0EP9aYJ2p0UJDEN9V1lg1SWaPN8TKhG/CAlQzGXdnc20a98cqxu5jzvj8Q7SQoAWL0ZMe1zUVJVs0XvBQItDLW6ZDpGyWTsxAcDwLqYCJubrg3aja17iFa+MCsa5esgY4GsawPtV+o9Dqx63m3joEH/fo53vNpJ6wlwaRK65hE5pkM=",
        "compute_cluster_gui_username": "admin",
        "compute_cluster_gui_password": "Passw0rd",
        "storage_cluster_gui_username": "admin",
        "storage_cluster_gui_password": "Passw0rd",
        "total_storage_cluster_instances": 4,
        "total_compute_cluster_instances": 3,
        "ansible_jump_host_ssh_private_key": "/root/.ssh/id_rsa"
    }
  3. Run terraform init and terraform apply -auto-approve to provision resources.

Requirements

Name Version
terraform ~> 1.0
azurerm ~> 2.0

Inputs

Name Description Type
client_id The Active Directory service principal associated with your account. string
client_secret The password or secret for your service principal. string
compute_cluster_gui_password Password for Compute cluster GUI. string
compute_cluster_gui_username GUI user to perform system management and monitoring tasks on compute cluster. string
compute_cluster_ssh_public_key The SSH public key to use to launch the compute cluster host. string
resource_group_name The name of a new resource group in which the resources will be created. string
storage_cluster_gui_password Password for Storage cluster GUI string
storage_cluster_gui_username GUI user to perform system management and monitoring tasks on storage cluster. string
storage_cluster_ssh_public_key The SSH public key to use to launch the storage cluster host. string
subscription_id The subscription ID to use. string
tenant_id The Active Directory tenant identifier, must provide when using service principals. string
vnet_availability_zones A list of availability zones ids in the region/location. list(string)
vnet_location The location/region of the vnet to create. Examples are East US, West US, etc. string
ansible_jump_host_ssh_private_key Ansible jump host SSH private key path, which will be used to login to ansible jump host. string
compute_cluster_filesystem_mountpoint Compute cluster (accessingCluster) Filesystem mount point. string
compute_cluster_image_offer Specifies the offer of the image used to create the compute cluster virtual machines. string
compute_cluster_image_publisher Specifies the publisher of the image used to create the compute cluster virtual machines. string
compute_cluster_image_sku Specifies the SKU of the image used to create the compute cluster virtual machines. string
compute_cluster_image_version Specifies the version of the image used to create the compute cluster virtual machines. string
compute_cluster_login_username The username of the local administrator used for the Virtual Machine. string
compute_cluster_os_disk_caching Specifies the caching requirements for the OS Disk (Ex: None, ReadOnly and ReadWrite). string
compute_cluster_os_storage_account_type Type of storage account which should back this the internal OS disk (Ex: Standard_LRS, StandardSSD_LRS and Premium_LRS). string
compute_cluster_vm_size Instance type to use for provisioning the compute cluster instances. string
create_separate_namespaces Flag to select if separate namespace needs to be created for compute instances. bool
data_disk_size Size of the volume in gibibytes (GB). number
data_disk_storage_account_type Type of storage to use for the managed disk (Ex: Standard_LRS, Premium_LRS, StandardSSD_LRS or UltraSSD_LRS). string
data_disks_per_storage_instance Additional Data disks to attach per storage cluster instance. number
filesystem_block_size Filesystem block size. string
resource_prefix Prefix is added to all resources that are created. string
scale_ansible_repo_clone_path Path to clone github.com/IBM/ibm-spectrum-scale-install-infra. string
spectrumscale_rpms_path Path that contains IBM Spectrum Scale product cloud rpms. string
storage_cluster_filesystem_mountpoint Storage cluster (owningCluster) Filesystem mount point. string
storage_cluster_image_offer Specifies the offer of the image used to create the storage cluster virtual machines. string
storage_cluster_image_publisher Specifies the publisher of the image used to create the storage cluster virtual machines. string
storage_cluster_image_sku Specifies the SKU of the image used to create the storage cluster virtual machines. string
storage_cluster_image_version Specifies the version of the image used to create the storage cluster virtual machines. string
storage_cluster_login_username The username of the local administrator used for the Virtual Machine. string
storage_cluster_os_disk_caching Specifies the caching requirements for the OS Disk (Ex: None, ReadOnly and ReadWrite). string
storage_cluster_os_storage_account_type Type of storage account which should back this the internal OS disk (Ex: Standard_LRS, StandardSSD_LRS and Premium_LRS). string
storage_cluster_vm_size Instance type to use for provisioning the storage cluster instances. string
total_compute_cluster_instances Number of Azure instances (vms) to be launched for compute cluster. number
total_storage_cluster_instances Number of Azure instances (vms) to be launched for storage cluster. number
using_direct_connection If true, will skip the jump/bastion host configuration. bool
using_packer_image If true, gpfs rpm copy step will be skipped during the configuration. bool
using_rest_api_remote_mount If false, skips GUI initialization on compute cluster for remote mount configuration. string
vnet_address_space The address space that is used by the virtual network. list(string)
vnet_compute_cluster_dns_domain Azure DNS domain name to be used for compute cluster. string
vnet_compute_cluster_private_subnets_address_space List of cidr_blocks of compute private subnets. list(string)
vnet_create_separate_subnets Flag to select if separate private subnet to be created for compute cluster. bool
vnet_public_subnets_address_space List of address prefix to use for public subnets. list(string)
vnet_storage_cluster_dns_domain Azure DNS domain name to be used for storage cluster. string
vnet_storage_cluster_private_subnets_address_space List of address prefix to use for storage cluster private subnets. list(string)
vnet_tags The tags to associate with your network and subnets. map(string)

Outputs

Name Description
ansible_jump_host_id Ansible jump host instance id.
ansible_jump_host_private_ip Ansible jump host instance private ip addresses.
ansible_jump_host_public_ip Ansible jump host instance public ip addresses.
bastion_instance_public_ip Bastion instance public ip addresses.
compute_cluster_instance_ids Compute cluster instance ids.
compute_cluster_instance_private_ips Private IP address of compute cluster instances.
resource_group_name New resource group name
storage_cluster_instance_ids Storage cluster instance ids.
storage_cluster_instance_private_ips Private IP address of storage cluster instances.
storage_cluster_with_data_volume_mapping Mapping of storage cluster instance ip vs. device path.
vnet_id The ID of the VNET.