Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,40 @@
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)

## Summary
This repository contains deployable architecture solutions that help in deploying VPC landing zones, Power Virtual Server workspaces, and SAP HANA solutions. The solutions are available in the IBM Cloud Catalog and can also be deployed without the catalog, except for a few solutions.
This repository contains deployable architecture solutions that help in deploying VPC landing zones, Power Virtual Server workspaces, and SAP HANA solutions. The solutions are available in the IBM Cloud Catalog and can also be deployed without the catalog.


### IBM catalog solutions that require a Schematics workspace ID of [Power Virtual Server with VPC landing zone](https://cloud.ibm.com/catalog/architecture/deploy-arch-ibm-pvs-inf-2dd486c7-b317-4aaa-907b-42671485ad96-global)
### Solutions

1. [IBM catalog PowerVS SAP Ready variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/ibm-catalog/sap-ready-to-go)
- Creates a VPC and Power Virtual Server workspace, interconnects them, and configures OS network management services (SQUID proxy, NTP, NFS, and DNS) using Ansible Galaxy collection roles from the ibm.power_linux_sap collection.
- Creates and configures **one HANA instance and zero to several NetWeaver instances** with **RHEL or SLES OS** distribution. Creates a private subnet for SAP communication for the entire landscape.
- Optionally configures OS network management services (NTP, NFS, and DNS services) using Ansible Galaxy Collection from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/): `power_linux_sap`
- Additionally tunes the instances according to SAP's best practices, which are fully ready for hosting SAP applications.
2. [IBM catalog PowerVS S/4HANA or BW/4HANA variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/ibm-catalog/sap-s4hana-bw4hana)

1. [IBM catalog PowerVS S/4HANA or BW/4HANA variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/ibm-catalog/sap-s4hana-bw4hana)
- Creates and configures **one HANA instance and one NetWeaver instance** with **RHEL** OS distribution. Creates a private subnet for SAP communication for the entire landscape.
- Optionally configures OS network management services (NTP, NFS, and DNS services) using Ansible Galaxy Collection from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/): `power_linux_sap`
- Tunes the instances according to SAP's best practices.
- Downloads user-provided preloaded SAP Installation binaries from IBM Cloud Object Storage Bucket.
- Installs and configures **SAP applications** (SAP HANA DB, SAP S4/HANA, SAP BW4/HANA) using [RHEL System Roles](https://access.redhat.com/articles/4488731): `sap_hana_install`, `sap_swpm`,`sap_general_preconfigure`, `sap_hana_preconfigure`, `sap_netweaver_preconfigure`

1. [Single HANA Instance](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/single-hana-instance)
- Creates a single HANA instance based on HANA certified profiles along with right storage config.
- Optionally configures OS network management services (NTP, NFS, and DNS services) using Ansible Galaxy Collection from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/): `power_linux_sap`
- Tunes the instances according to SAP's best practices.

### Solutions independent of IBM Cloud prerequisite Schematics workspace ID:
1. [PowerVS SAP Ready variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/sap-ready-to-go)
- Creates and configures **one HANA instance and zero to several NetWeaver instances** with **RHEL or SLES OS** distribution. Creates a private subnet for SAP communication for the entire landscape
- Optionally configures OS network management services (NTP, NFS, and DNS services) using Ansible Galaxy collection from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/)
- Additionally tunes the instances according to SAP's best practices, which is fully ready for hosting SAP applications.
1. [Single Netweaver Instance](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/tree/main/solutions/single-netweaver-instance)
- Creates a single Netweaver instance along with right storage config.
- Optionally configures OS network management services (NTP, NFS, and DNS services) using Ansible Galaxy Collection from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/): `power_linux_sap`
- Tunes the instances according to SAP's best practices.



## Reference architectures
- [IBM catalog PowerVS SAP Ready variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/blob/main/reference-architectures/sap-ready-to-go/deploy-arch-ibm-pvs-sap-ready-to-go.svg)
- [IBM catalog PowerVS SAP S/4HANA or BW/4HANA variation](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-sap/blob/main/reference-architectures/sap-s4hana-bw4hana/deploy-arch-ibm-pvs-sap-s4hana-bw4hana.svg)
- [Power Virtual Server with vpc landing zone](https://github.com/terraform-ibm-modules/terraform-ibm-powervs-infrastructure/blob/main/reference-architectures/full-stack/deploy-arch-ibm-pvs-inf-full-stack.svg)



## Solutions
Expand All @@ -44,7 +49,6 @@ This repository contains deployable architecture solutions that help in deployin
|:---------------------------------------------------------------------------:|:------------------------:|:-------------------------------------:|:-----------------------------:|:----------------------------:|:--------------------------:|:---------------------------:|:--------------------:|
| [IBM catalog PowerVS SAP Ready]( ./solutions/ibm-catalog/sap-ready-to-go/ ) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 1 | 0 to N | :heavy_check_mark: | :heavy_check_mark: | N/A |
| [IBM catalog SAP S/4HANA or BW/4HANA variation]( ./solutions/ibm-catalog/sap-s4hana-bw4hana ) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 1 | 1 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [PowerVS SAP Ready]( ./solutions/sap-ready-to-go/ ) | N/A | N/A | :heavy_check_mark: | 1 | 0 to N | :heavy_check_mark: | :heavy_check_mark: | N/A |



Expand Down
8 changes: 8 additions & 0 deletions ibm_catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,14 @@
}
],
"custom_config": {}
},
{
"key": "vpc_subnet_cidrs",
"custom_config": {
"grouping": "deployment",
"original_grouping": "deployment",
"type": "code_editor"
}
}
],
"iam_permissions": [
Expand Down
5 changes: 3 additions & 2 deletions solutions/ibm-catalog/sap-ready-to-go/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
- Optionally configures a shared NFS directory on all created PowerVS instances.
- Optionally installs Sysdig agent and configures connection to [IBM Cloud Security and Compliance Center Workload Protection](https://cloud.ibm.com/docs/workload-protection)
- Post-instance provisioning, Ansible Galaxy collection roles from [IBM](https://galaxy.ansible.com/ui/repo/published/ibm/power_linux_sap/) are executed: `power_linux_sap`.
- Tested with RHEL8.4,/8.6/8.8/9.2, SLES15-SP3/SP5 images.
- Tested with RHEL8.4,/8.6/8.8/9.2/9.4, SLES15-SP3/SP5/SP6 images.


## Notes
Expand Down Expand Up @@ -73,7 +73,7 @@
| Name | Source | Version |
|------|--------|---------|
| <a name="module_sap_system"></a> [sap\_system](#module\_sap\_system) | ../../../modules/pi-sap-system-type1 | n/a |
| <a name="module_standard"></a> [standard](#module\_standard) | terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone | 10.0.1 |
| <a name="module_standard"></a> [standard](#module\_standard) | terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone | 10.1.1 |

### Resources

Expand Down Expand Up @@ -121,6 +121,7 @@
| <a name="input_ssh_public_key"></a> [ssh\_public\_key](#input\_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 |
| <a name="input_tags"></a> [tags](#input\_tags) | List of tag names for the IBM Cloud PowerVS workspace | `list(string)` | `[]` | no |
| <a name="input_vpc_intel_images"></a> [vpc\_intel\_images](#input\_vpc\_intel\_images) | Stock OS image names for creating VPC landing zone VSI instances: RHEL (management and network services) and SLES (monitoring). | <pre>object({<br/> rhel_image = string<br/> sles_image = string<br/> })</pre> | <pre>{<br/> "rhel_image": "ibm-redhat-9-6-amd64-sap-applications-1",<br/> "sles_image": "ibm-sles-15-7-amd64-sap-applications-1"<br/>}</pre> | no |
| <a name="input_vpc_subnet_cidrs"></a> [vpc\_subnet\_cidrs](#input\_vpc\_subnet\_cidrs) | CIDR values for the VPC subnets to be created. It's customer responsibility that none of the defined networks collide, including the PowerVS subnets and VPN client pool. | <pre>object({<br/> vpn = string<br/> mgmt = string<br/> vpe = string<br/> edge = string<br/> })</pre> | <pre>{<br/> "edge": "10.30.40.0/24",<br/> "mgmt": "10.30.20.0/24",<br/> "vpe": "10.30.30.0/24",<br/> "vpn": "10.30.10.0/24"<br/>}</pre> | no |

### Outputs

Expand Down
25 changes: 4 additions & 21 deletions solutions/ibm-catalog/sap-ready-to-go/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,9 @@
# PowerVS Workspace
#######################################################

locals {
powervs_management_network = { name = "${var.prefix}-sap-net", cidr = var.powervs_sap_network_cidr }
powervs_server_routes = concat(
[
{
route_name = local.powervs_management_network.name
destination = local.powervs_management_network.cidr
action = "deliver"
}
]
)

client_to_site_vpn = merge(
var.client_to_site_vpn,
{ powervs_server_routes = local.powervs_server_routes }
)
}

module "standard" {
source = "terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone"
version = "10.0.1"
version = "10.1.1"

providers = {
ibm.ibm-is = ibm.ibm-is
Expand All @@ -39,7 +21,7 @@ module "standard" {
vpc_intel_images = var.vpc_intel_images
ssh_public_key = var.ssh_public_key
ssh_private_key = var.ssh_private_key
powervs_management_network = local.powervs_management_network
powervs_management_network = { name = "${var.prefix}-sap-net", cidr = var.powervs_sap_network_cidr }
powervs_backup_network = null
configure_dns_forwarder = true
configure_ntp_forwarder = true
Expand All @@ -50,14 +32,15 @@ module "standard" {
powervs_custom_images = var.powervs_custom_images
powervs_custom_image_cos_configuration = var.powervs_custom_image_cos_configuration
powervs_custom_image_cos_service_credentials = var.powervs_custom_image_cos_service_credentials
client_to_site_vpn = local.client_to_site_vpn
client_to_site_vpn = var.client_to_site_vpn
sm_service_plan = var.sm_service_plan
existing_sm_instance_guid = var.existing_sm_instance_guid
existing_sm_instance_region = var.existing_sm_instance_region
enable_monitoring = var.enable_monitoring
existing_monitoring_instance_crn = var.existing_monitoring_instance_crn
enable_scc_wp = var.enable_scc_wp
ansible_vault_password = var.ansible_vault_password
vpc_subnet_cidrs = var.vpc_subnet_cidrs
}


Expand Down
20 changes: 20 additions & 0 deletions solutions/ibm-catalog/sap-ready-to-go/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -361,3 +361,23 @@ variable "tags" {
type = list(string)
default = []
}

#####################################################
# Optional Parameters VPC subnets
#####################################################

variable "vpc_subnet_cidrs" {
description = "CIDR values for the VPC subnets to be created. It's customer responsibility that none of the defined networks collide, including the PowerVS subnets and VPN client pool."
type = object({
vpn = string
mgmt = string
vpe = string
edge = string
})
default = {
"vpn" = "10.30.10.0/24"
"mgmt" = "10.30.20.0/24"
"vpe" = "10.30.30.0/24"
"edge" = "10.30.40.0/24"
}
}
Loading