TerraformPilot

DevOps

Terraform for IBM i on Power Systems Virtual Server

Provision IBM i (Power Systems) on IBM Cloud with Terraform: PowerVS instances, Db2 for i, FlashCopy storage, and hybrid networking.

LLuca Berton1 min read

IBM i (the OS once called OS/400) runs critical ERP and core systems on Power. Modern IBM i workloads can run in IBM Cloud Power Systems Virtual Server (PowerVS), and the IBM-Cloud/ibm Terraform provider creates instances, volumes, and networks declaratively.

Provider and Workspace

#
provider "ibm" {
  ibmcloud_api_key = var.ibm_api_key
  region           = "us-south"
  zone             = "dal12"
}
 
data "ibm_pi_workspace" "ws" {
  pi_workspace_name = "acme-powervs"
}

IBM i 7.5 Instance

#
data "ibm_pi_image" "ibmi_75" {
  pi_image_name = "IBMi-75-04-2924-1"
  pi_cloud_instance_id = data.ibm_pi_workspace.ws.id
}
 
resource "ibm_pi_instance" "ibmi" {
  pi_cloud_instance_id = data.ibm_pi_workspace.ws.id
  pi_instance_name     = "ibmi-erp-1"
  pi_image_id          = data.ibm_pi_image.ibmi_75.id
  pi_processors        = 1
  pi_memory            = 8
  pi_proc_type         = "shared"
  pi_sys_type          = "s922"
 
  pi_network {
    network_id = ibm_pi_network.private.network_id
  }
}

Storage with FlashCopy

#
resource "ibm_pi_volume" "data" {
  pi_cloud_instance_id = data.ibm_pi_workspace.ws.id
  pi_volume_name       = "ibmi-erp-data"
  pi_volume_size       = 200
  pi_volume_type       = "tier1"
}
 
resource "ibm_pi_volume_attach" "data" {
  pi_cloud_instance_id = data.ibm_pi_workspace.ws.id
  pi_volume_id         = ibm_pi_volume.data.volume_id
  pi_instance_id       = ibm_pi_instance.ibmi.instance_id
}

Best Practices

#
  • Pin the IBM i image name including PTF level — image names change with each refresh.
  • Use a dedicated PowerVS workspace per environment — networking is per-workspace.
  • Tier-1 storage for libraries, tier-3 for archive — match SLA, not Linux defaults.
  • Manage IPLs out-of-band — Terraform doesn't IPL.
  • Drive ACS (Access Client Solutions) deployment via Ansible post-provision.
#
#Terraform#IBM i#PowerVS#AS/400#IBM Cloud

Share this article