diff --git a/ibm_catalog.json b/ibm_catalog.json index 3337ec27..8ebb3849 100755 --- a/ibm_catalog.json +++ b/ibm_catalog.json @@ -60,7 +60,7 @@ "name": "deploy-arch-ibm-pvs-inf", "install_type": "fullstack", "optional": true, - "version": ">=5.0.0" + "version": ">=8.0.0" } ], "configuration": [ @@ -71,7 +71,7 @@ "config_constraints": { "catalogID": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc", "offeringID": "2dd486c7-b317-4aaa-907b-42671485ad96-global", - "versionConstraint": ">=5.0.0" + "versionConstraint": ">=8.0.0" }, "grouping": "deployment", "original_grouping": "deployment", @@ -373,7 +373,7 @@ "name": "deploy-arch-ibm-pvs-inf", "install_type": "fullstack", "optional": true, - "version": ">=5.0.0" + "version": ">=8.0.0" } ], "configuration": [ @@ -384,7 +384,7 @@ "config_constraints": { "catalogID": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc", "offeringID": "2dd486c7-b317-4aaa-907b-42671485ad96-global", - "versionConstraint": ">=5.0.0" + "versionConstraint": ">=8.0.0" }, "grouping": "deployment", "original_grouping": "deployment", diff --git a/modules/ansible/ansible_node_packages.sh b/modules/ansible/ansible_node_packages.sh index cfd4b4c2..66fb356a 100644 --- a/modules/ansible/ansible_node_packages.sh +++ b/modules/ansible/ansible_node_packages.sh @@ -8,7 +8,7 @@ ############################################################ GLOBAL_RHEL_PACKAGES="rhel-system-roles rhel-system-roles-sap expect" -GLOBAL_GALAXY_COLLECTIONS="ibm.power_linux_sap:>=3.0.0,<4.0.0 ansible.posix:1.5.4 ansible.utils:4.1.0 community.general:10.0.1" +GLOBAL_GALAXY_COLLECTIONS="ibm.power_linux_sap:>=3.0.0,<4.0.0" ############################################################ # Start functions @@ -90,6 +90,7 @@ main::install_packages() { done done + ansible-galaxy collection install -r '/root/.ansible/collections/ansible_collections/ibm/power_linux_sap/requirements.yml' -f main::log_info "All packages installed successfully" fi diff --git a/modules/ansible/main.tf b/modules/ansible/main.tf index e78ad11d..cbbae467 100644 --- a/modules/ansible/main.tf +++ b/modules/ansible/main.tf @@ -24,6 +24,7 @@ locals { ############################################################## resource "terraform_data" "setup_ansible_host" { + count = var.configure_ansible_host ? 1 : 0 connection { type = "ssh" diff --git a/modules/ansible/templates-ansible/s4hanab4hana-solution/playbook-sap-swpm-install.yml.tftpl b/modules/ansible/templates-ansible/s4hanab4hana-solution/playbook-sap-swpm-install.yml.tftpl index 0e06b18e..d1fadc7f 100644 --- a/modules/ansible/templates-ansible/s4hanab4hana-solution/playbook-sap-swpm-install.yml.tftpl +++ b/modules/ansible/templates-ansible/s4hanab4hana-solution/playbook-sap-swpm-install.yml.tftpl @@ -1,7 +1,5 @@ # ------------------------------------------------------------------------ -# This playbook uses: -# 1. ansible-galaxy collection community.sap_install -# 2. ansible-galaxy collection community.general +# This playbook uses the RHEL Linux System Roles. # ------------------------------------------------------------------------ # Install directory **should not contain** any IMDB files. Otherwise swpm roll will run into error. However exception is IMDB_CLIENT*.SAR file. # 1. IMDB_SERVER*SAR file must be absent diff --git a/modules/ansible/variables.tf b/modules/ansible/variables.tf index d8e08504..a8860fb3 100644 --- a/modules/ansible/variables.tf +++ b/modules/ansible/variables.tf @@ -14,6 +14,11 @@ variable "ssh_private_key" { sensitive = true } +variable "configure_ansible_host" { + description = "If set to true, bash script will be executed to install and configure the collections and packages on ansible node." + type = bool +} + variable "src_script_template_name" { description = "Name of the bash script template file located within the 'templates-ansible' directory." type = string diff --git a/modules/pi-sap-system-type1/README.md b/modules/pi-sap-system-type1/README.md index 8a663f39..9c52ae0f 100644 --- a/modules/pi-sap-system-type1/README.md +++ b/modules/pi-sap-system-type1/README.md @@ -34,10 +34,10 @@ The Power Virtual Server for SAP module automates the following tasks: | [ansible\_netweaver\_sapmnt\_mount](#module\_ansible\_netweaver\_sapmnt\_mount) | ../ansible | n/a | | [ansible\_sap\_instance\_init](#module\_ansible\_sap\_instance\_init) | ../ansible | n/a | | [ansible\_sharefs\_instance\_exportfs](#module\_ansible\_sharefs\_instance\_exportfs) | ../ansible | n/a | -| [pi\_hana\_instance](#module\_pi\_hana\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.1 | +| [pi\_hana\_instance](#module\_pi\_hana\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.3 | | [pi\_hana\_storage\_calculation](#module\_pi\_hana\_storage\_calculation) | ../pi-hana-storage-config | n/a | -| [pi\_netweaver\_instance](#module\_pi\_netweaver\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.1 | -| [pi\_sharefs\_instance](#module\_pi\_sharefs\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.1 | +| [pi\_netweaver\_instance](#module\_pi\_netweaver\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.3 | +| [pi\_sharefs\_instance](#module\_pi\_sharefs\_instance) | terraform-ibm-modules/powervs-instance/ibm | 2.2.3 | ### Resources diff --git a/modules/pi-sap-system-type1/main.tf b/modules/pi-sap-system-type1/main.tf index 6d695b36..bad80dc4 100644 --- a/modules/pi-sap-system-type1/main.tf +++ b/modules/pi-sap-system-type1/main.tf @@ -25,7 +25,7 @@ locals { module "pi_sharefs_instance" { source = "terraform-ibm-modules/powervs-instance/ibm" - version = "2.2.1" + version = "2.2.3" count = var.pi_sharefs_instance.enable ? 1 : 0 pi_workspace_guid = var.pi_workspace_guid @@ -62,12 +62,13 @@ locals { module "ansible_sharefs_instance_exportfs" { - source = "../ansible" - depends_on = [module.pi_sharefs_instance] - count = var.pi_sharefs_instance.enable ? 1 : 0 - bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip - ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip - ssh_private_key = var.pi_instance_init_linux.ssh_private_key + source = "../ansible" + depends_on = [module.pi_sharefs_instance] + count = var.pi_sharefs_instance.enable ? 1 : 0 + bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip + ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip + ssh_private_key = var.pi_instance_init_linux.ssh_private_key + configure_ansible_host = false src_script_template_name = "configure-network-services/ansible_exec.sh.tftpl" dst_script_file_name = "${local.sap_instance_names[count.index]}_configure_nfs_server.sh" @@ -103,7 +104,7 @@ module "pi_hana_storage_calculation" { module "pi_hana_instance" { source = "terraform-ibm-modules/powervs-instance/ibm" - version = "2.2.1" + version = "2.2.3" pi_workspace_guid = var.pi_workspace_guid pi_instance_name = local.pi_hana_instance_name @@ -141,7 +142,7 @@ resource "time_sleep" "wait_1_min" { module "pi_netweaver_instance" { source = "terraform-ibm-modules/powervs-instance/ibm" - version = "2.2.1" + version = "2.2.3" count = var.pi_netweaver_instance.instance_count depends_on = [time_sleep.wait_1_min] @@ -173,12 +174,13 @@ locals { module "ansible_netweaver_sapmnt_mount" { - source = "../ansible" - depends_on = [module.ansible_sharefs_instance_exportfs, module.pi_netweaver_instance] - count = var.pi_sharefs_instance.enable && local.valid_sharefs_nfs_config ? var.pi_netweaver_instance.instance_count : 0 - bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip - ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip - ssh_private_key = var.pi_instance_init_linux.ssh_private_key + source = "../ansible" + depends_on = [module.ansible_sharefs_instance_exportfs, module.pi_netweaver_instance] + count = var.pi_sharefs_instance.enable && local.valid_sharefs_nfs_config ? var.pi_netweaver_instance.instance_count : 0 + bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip + ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip + ssh_private_key = var.pi_instance_init_linux.ssh_private_key + configure_ansible_host = true src_script_template_name = "configure-network-services/ansible_exec.sh.tftpl" dst_script_file_name = "${local.sap_instance_names[count.index]}_sapmnt_mount.sh" @@ -208,12 +210,13 @@ locals { module "ansible_sap_instance_init" { - source = "../ansible" - depends_on = [module.pi_hana_instance, module.pi_netweaver_instance, module.ansible_netweaver_sapmnt_mount] - count = length(local.target_server_ips) - bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip - ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip - ssh_private_key = var.pi_instance_init_linux.ssh_private_key + source = "../ansible" + depends_on = [module.pi_hana_instance, module.pi_netweaver_instance, module.ansible_netweaver_sapmnt_mount] + count = length(local.target_server_ips) + bastion_host_ip = var.pi_instance_init_linux.bastion_host_ip + ansible_host_or_ip = var.pi_instance_init_linux.ansible_host_or_ip + ssh_private_key = var.pi_instance_init_linux.ssh_private_key + configure_ansible_host = false src_script_template_name = "configure-os-for-sap/ansible_exec.sh.tftpl" dst_script_file_name = "${local.sap_instance_names[count.index]}_configure_os_for_sap.sh" diff --git a/reference-architectures/sap-ready-to-go/deploy-arch-ibm-pvs-sap-ready-to-go.md b/reference-architectures/sap-ready-to-go/deploy-arch-ibm-pvs-sap-ready-to-go.md index 5ce3163f..5a2cd16d 100644 --- a/reference-architectures/sap-ready-to-go/deploy-arch-ibm-pvs-sap-ready-to-go.md +++ b/reference-architectures/sap-ready-to-go/deploy-arch-ibm-pvs-sap-ready-to-go.md @@ -2,7 +2,7 @@ copyright: years: 2024 -lastupdated: "2024-12-02" +lastupdated: "2024-12-11" keywords: subcollection: deployable-reference-architectures authors: @@ -16,7 +16,7 @@ use-case: ITServiceManagement industry: Technology compliance: SAPCertified content-type: reference-architecture -version: v3.2.0 +version: v3.2.1 related_links: - title: 'SAP in IBM Cloud documentation' url: 'https://cloud.ibm.com/docs/sap' @@ -38,7 +38,7 @@ related_links: {: toc-industry="Technology"} {: toc-use-case="ITServiceManagement"} {: toc-compliance="SAPCertified"} -{: toc-version="3.2.0"} +{: toc-version="3.2.1"} The SAP-ready PowerVS variation of the Power Virtual Server for SAP HANA creates a basic and expandable SAP system landscape. The variation builds on the foundation of the VPC landing zone and Power Virtual Server with VPC landing zone. PowerVS instances for SAP HANA, SAP NetWeaver, and optionally for shared SAP files are deployed and preconfigured for SAP installation. diff --git a/reference-architectures/sap-s4hana-bw4hana/deploy-arch-ibm-pvs-sap-s4hana-bw4hana.md b/reference-architectures/sap-s4hana-bw4hana/deploy-arch-ibm-pvs-sap-s4hana-bw4hana.md index 550320c7..3e9be1a5 100644 --- a/reference-architectures/sap-s4hana-bw4hana/deploy-arch-ibm-pvs-sap-s4hana-bw4hana.md +++ b/reference-architectures/sap-s4hana-bw4hana/deploy-arch-ibm-pvs-sap-s4hana-bw4hana.md @@ -2,7 +2,7 @@ copyright: years: 2024 -lastupdated: "2024-12-02" +lastupdated: "2024-12-11" keywords: subcollection: deployable-reference-architectures authors: @@ -16,7 +16,7 @@ use-case: ITServiceManagement industry: Technology compliance: SAPCertified content-type: reference-architecture -version: v3.2.0 +version: v3.2.1 related_links: - title: 'SAP in IBM Cloud documentation' url: 'https://cloud.ibm.com/docs/sap' @@ -38,7 +38,7 @@ related_links: {: toc-industry="Technology"} {: toc-use-case="ITServiceManagement"} {: toc-compliance="SAPCertified"} -{: toc-version="3.2.0"} +{: toc-version="3.2.1"} 'SAP S/4HANA or BW/4HANA' variation of 'Power Virtual Server for SAP HANA' creates a basic and expandable SAP system landscape built on the foundation of 'Power Virtual Server with VPC landing zone'. PowerVS instances for SAP HANA, SAP NetWeaver, and optionally for shared SAP files are deployed and preconfigured for SAP installation. The S/4HANA or BW/4HANA solution is installed based on the selected version. diff --git a/solutions/e2e/README.md b/solutions/e2e/README.md index 9ea479ca..7ba2a6f7 100644 --- a/solutions/e2e/README.md +++ b/solutions/e2e/README.md @@ -59,14 +59,14 @@ The end-to-end solution automates the following tasks: | Name | Source | Version | |------|--------|---------| -| [powervs\_infra](#module\_powervs\_infra) | terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone | 8.0.1 | +| [powervs\_infra](#module\_powervs\_infra) | terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone | 8.0.3 | | [sap\_system](#module\_sap\_system) | ../../modules/pi-sap-system-type1 | n/a | ### Resources | Name | Type | |------|------| -| [time_sleep.wait_10_mins](https://registry.terraform.io/providers/hashicorp/time/0.12.1/docs/resources/sleep) | resource | +| [time_sleep.wait_15_mins](https://registry.terraform.io/providers/hashicorp/time/0.12.1/docs/resources/sleep) | resource | ### Inputs diff --git a/solutions/e2e/main.tf b/solutions/e2e/main.tf index f29ad7b6..7685b902 100644 --- a/solutions/e2e/main.tf +++ b/solutions/e2e/main.tf @@ -7,7 +7,7 @@ module "powervs_infra" { source = "terraform-ibm-modules/powervs-infrastructure/ibm//modules/powervs-vpc-landing-zone" - version = "8.0.1" + version = "8.0.3" providers = { ibm.ibm-is = ibm.ibm-is, ibm.ibm-pi = ibm.ibm-pi, ibm.ibm-sm = ibm.ibm-sm } @@ -21,11 +21,15 @@ module "powervs_infra" { configure_ntp_forwarder = var.configure_ntp_forwarder configure_nfs_server = var.configure_nfs_server powervs_image_names = ["SLES15-SP5-SAP", "RHEL9-SP2-SAP", "SLES15-SP5-SAP-NETWEAVER", "RHEL9-SP2-SAP-NETWEAVER"] + client_to_site_vpn = { enable = false, client_ip_pool = "", vpn_client_access_group_users = [] } } -resource "time_sleep" "wait_10_mins" { - create_duration = "600s" + +resource "time_sleep" "wait_15_mins" { + create_duration = "900s" } + + ####################################################### # Power Virtual Server SAP ready-to-go # Deploy SAP system @@ -63,7 +67,7 @@ locals { module "sap_system" { source = "../../modules/pi-sap-system-type1" - depends_on = [time_sleep.wait_10_mins] + depends_on = [time_sleep.wait_15_mins] providers = { ibm = ibm.ibm-pi } prefix = var.prefix diff --git a/solutions/ibm-catalog/sap-s4hana-bw4hana/main.tf b/solutions/ibm-catalog/sap-s4hana-bw4hana/main.tf index ba50fd91..b3ad2a31 100644 --- a/solutions/ibm-catalog/sap-s4hana-bw4hana/main.tf +++ b/solutions/ibm-catalog/sap-s4hana-bw4hana/main.tf @@ -142,6 +142,7 @@ module "ansible_sap_install_hana" { bastion_host_ip = local.access_host_or_ip ansible_host_or_ip = local.ansible_host_or_ip ssh_private_key = var.ssh_private_key + configure_ansible_host = false ansible_vault_password = var.ansible_vault_password src_script_template_name = "hanadb/install_hana.sh.tftpl" @@ -195,6 +196,7 @@ module "ansible_sap_install_solution" { bastion_host_ip = local.access_host_or_ip ansible_host_or_ip = local.ansible_host_or_ip ssh_private_key = var.ssh_private_key + configure_ansible_host = false ansible_vault_password = var.ansible_vault_password src_script_template_name = "s4hanab4hana-solution/install_swpm.sh.tftpl" diff --git a/solutions/sap-ready-to-go/README.md b/solutions/sap-ready-to-go/README.md index bf230885..030c25c0 100644 --- a/solutions/sap-ready-to-go/README.md +++ b/solutions/sap-ready-to-go/README.md @@ -37,7 +37,7 @@ The 'sap-ready-to-go' solution automates the following tasks: | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.9.0 | -| [ibm](#requirement\_ibm) | >= 1.71.3 | +| [ibm](#requirement\_ibm) | = 1.71.3 | ### Modules diff --git a/solutions/sap-ready-to-go/version.tf b/solutions/sap-ready-to-go/version.tf index c8101f45..5a16523f 100644 --- a/solutions/sap-ready-to-go/version.tf +++ b/solutions/sap-ready-to-go/version.tf @@ -7,7 +7,7 @@ terraform { required_providers { ibm = { source = "IBM-Cloud/ibm" - version = ">= 1.71.3" + version = "= 1.71.3" } } }