This module provisions the following resources in IBM Cloud:
-
A VPC Infrastructure based on value passed to 'var.landing_zone_configuration' with the following components:
-
landing_zone_configuration = 3VPC_RHEL or 3VPC_SLES
- Provisions three VPCs with one VSI in each VPC one management(jump/bastion) VSI, one inet-svs VSI configured as squid proxy server, one private-svs VSI (configured as NFS, NTP, DNS server) using this preset.
- Installs and configures the Squid Proxy, DNS Forwarder, NTP forwarder and NFS on hosts, and sets the host as the server for the NTP, NFS, and DNS services by using ansible galaxy collection roles ibm.power_linux_sap collection.
-
landing_zone_configuration = 1VPC_RHEL
- One VPC with one VSI for management(jump/bastion) using this preset.
- Installation and configuration of Squid Proxy, DNS Forwarder, NTP forwarder and NFS on the bastion host, and sets the host as the server for the NTP, NFS, and DNS services using ansible galaxy collection roles ibm.power_linux_sap collection
-
-
A Power Virtual Server workspace with the following network topology:
- Creates two private networks: a management network and a backup network.
- Creates one or two IBM Cloud connections in Non PER environment.
- Attaches the private networks to the IBM Cloud connections in Non PER environment.
- Attaches the IBM Cloud connections to a transit gateway in Non PER environment.
- Attaches the PowerVS workspace to Transit gateway in PER enabled DC
- Creates an SSH key.
-
Finally Interconnects both VPC and PowerVS infrastructure.
provider "ibm" {
alias = "ibm-pi"
region = ""
zone = ""
ibmcloud_api_key = var.ibmcloud_api_key != null ? var.ibmcloud_api_key : null
}
provider "ibm" {
alias = "ibm-is"
region = ""
zone = ""
ibmcloud_api_key = var.ibmcloud_api_key != null ? var.ibmcloud_api_key : null
}
module "fullstack" {
source = "terraform-ibm-modules/powervs-infrastructure/ibm//modules//powervs-vpc-landing-zone"
version = "x.x.x" # Replace "x.x.x" with a git release version to lock into a specific release
providers = { ibm.ibm-is = ibm.ibm-is, ibm.ibm-pi = ibm.ibm-pi }
powervs_zone = var.powervs_zone
landing_zone_configuration = var.landing_zone_configuration
prefix = var.prefix
external_access_ip = var.external_access_ip
ssh_public_key = var.ssh_public_key
ssh_private_key = var.ssh_private_key
configure_dns_forwarder = var.configure_dns_forwarder #(optional, default false)
configure_ntp_forwarder = var.configure_ntp_forwarder #(optional, default false)
configure_nfs_server = var.configure_nfs_server #(optional. default false)
nfs_server_config = var.nfs_server_config #(optional. default check vars)
dns_forwarder_config = var.dns_forwarder_config #(optional. default check vars)
powervs_resource_group_name = var.powervs_resource_group_name #(optional. default check vars)
powervs_management_network = var.powervs_management_network #(optional. default check vars)
powervs_backup_network = var.powervs_backup_network #(optional. default check vars)
cloud_connection = var.cloud_connection #(optional. default check vars)
powervs_image_names = var.powervs_image_names #(optional. default check vars)
tags = var.tags #(optional. default check vars)
}
Catalog image names to be imported into infrastructure can be found here
Creates VPC Landing Zone | Performs VPC VSI OS Config | Creates PowerVS Infrastructure | Creates PowerVS Instance | Performs PowerVS OS Config |
---|---|---|---|---|
✔️ | ✔️ | ✔️ | N/A | N/A |
Name | Version |
---|---|
terraform | >= 1.3 |
ibm | >=1.58.1 |
time | >= 0.9.1 |
Name | Source | Version |
---|---|---|
landing_zone | terraform-ibm-modules/landing-zone/ibm//patterns//vsi//module | 4.14.0 |
landing_zone_configure_network_services | ../ansible-configure-network-services | n/a |
landing_zone_configure_proxy_server | ../ansible-configure-network-services | n/a |
powervs_infra | terraform-ibm-modules/powervs-workspace/ibm | 1.2.0 |
Name | Type |
---|---|
time_sleep.wait_for_squid_setup_to_complete | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
cloud_connection | Cloud connection configuration: speed (50, 100, 200, 500, 1000, 2000, 5000, 10000 Mb/s), count (1 or 2 connections), global_routing (true or false), metered (true or false). Not applicable for dal10 DC where PER is enabled. | object({ |
{ |
no |
configure_dns_forwarder | Specify if DNS forwarder will be configured. This will allow you to use central DNS servers (e.g. IBM Cloud DNS servers) sitting outside of the created IBM PowerVS infrastructure. If yes, ensure 'dns_forwarder_config' optional variable is set properly. DNS forwarder will be installed on the private-svs-1 vsi if exists else on inet-svs-1 vsi. | bool |
false |
no |
configure_nfs_server | Specify if NFS server will be configured. This will allow you easily to share files between PowerVS instances (e.g., SAP installation files). NFS server will be installed on the private-svs vsi. If yes, ensure 'nfs_server_config' optional variable is set properly below. Default value is '1TB' which will be mounted on '/nfs'. | bool |
false |
no |
configure_ntp_forwarder | Specify if NTP forwarder will be configured. This will allow you to synchronize time between IBM PowerVS instances. NTP forwarder will be installed on the private-svs-1 vsi if exists else on inet-svs-1 vsi. | bool |
false |
no |
dns_forwarder_config | Configuration for the DNS forwarder to a DNS service that is not reachable directly from PowerVS. | object({ |
{ |
no |
external_access_ip | Specify the IP address or CIDR to login through SSH to the environment after deployment. Access to this environment will be allowed only from this IP address. | string |
n/a | yes |
landing_zone_configuration | VPC landing zone configuration. Provided value must be one of ['3VPC_RHEL', '3VPC_SLES', '1VPC_RHEL'] only. | string |
n/a | yes |
nfs_server_config | Configuration for the NFS server. 'size' is in GB, 'mount_path' defines the mount point on os. Set 'configure_nfs_server' to false to ignore creating volume. | object({ |
{ |
no |
powervs_backup_network | Name of the IBM Cloud PowerVS backup network and CIDR to create. | object({ |
{ |
no |
powervs_image_names | List of Images to be imported into cloud account from catalog images. Supported values can be found here | list(string) |
[ |
no |
powervs_management_network | Name of the IBM Cloud PowerVS management subnet and CIDR to create. | object({ |
{ |
no |
powervs_resource_group_name | Existing IBM Cloud resource group name. | string |
n/a | yes |
powervs_zone | IBM Cloud data center location where IBM PowerVS infrastructure will be created. | string |
n/a | yes |
prefix | A unique identifier for resources. Must begin with a lowercase letter and end with a lowercase letter or number. This prefix will be prepended to any resources provisioned by this template. Prefixes must be 16 or fewer characters. | string |
n/a | yes |
ssh_private_key | Private SSH key (RSA format) used to login to IBM PowerVS instances. Should match to public SSH key referenced by 'ssh_public_key'. Entered data must be in heredoc strings format. The key is not uploaded or stored. For more information about SSH keys, see SSH keys. | string |
n/a | yes |
ssh_public_key | Public SSH Key for VSI creation. Must be an RSA key with a key size of either 2048 bits or 4096 bits (recommended). Must be a valid SSH key that does not already exist in the deployment region. | string |
n/a | yes |
tags | List of tag names for the IBM Cloud PowerVS workspace | list(string) |
[] |
no |
Name | Description |
---|---|
access_host_or_ip | Access host(jump/bastion) for created PowerVS infrastructure. |
cloud_connection_count | Number of cloud connections configured in created PowerVS infrastructure. |
dns_host_or_ip | DNS forwarder host for created PowerVS infrastructure. |
nfs_host_or_ip_path | NFS host for created PowerVS infrastructure. |
ntp_host_or_ip | NTP host for created PowerVS infrastructure. |
powervs_backup_subnet | Name, ID and CIDR of backup private network in created PowerVS infrastructure. |
powervs_images | Object containing imported PowerVS image names and image ids. |
powervs_management_subnet | Name, ID and CIDR of management private network in created PowerVS infrastructure. |
powervs_resource_group_name | IBM Cloud resource group where PowerVS infrastructure is created. |
powervs_ssh_public_key | SSH public key name and value in created PowerVS infrastructure. |
powervs_workspace_guid | PowerVS infrastructure workspace guid. The GUID of the resource instance. |
powervs_workspace_id | PowerVS infrastructure workspace id. The unique identifier of the new resource instance. |
powervs_workspace_name | PowerVS infrastructure workspace name. |
powervs_zone | Zone where PowerVS infrastructure is created. |
prefix | The prefix that is associated with all resources |
proxy_host_or_ip_port | Proxy host:port for created PowerVS infrastructure. |
ssh_public_key | The string value of the ssh public key used when deploying VPC |
transit_gateway_id | The ID of transit gateway. |
transit_gateway_name | The name of the transit gateway. |
vpc_names | A list of the names of the VPC. |
vsi_list | A list of VSI with name, id, zone, and primary ipv4 address, VPC Name, and floating IP. |
vsi_names | A list of the vsis names provisioned within the VPCs. |