// Module included in the following assemblies:
//
// * installing/installing_with_agent_based_installer/prepare-pxe-infra-agent.adoc

:_mod-docs-content-type: PROCEDURE
[id="installing-ocp-agent-ibm-z-zvm_{context}"]
= Adding {ibm-z-title} agents with z/VM

[role="_abstract"]
You can manually add {ibm-z-name} agents with z/VM.

Only use this procedure for {ibm-z-name} clusters with z/VM.

.Prerequisites

* You have a running file server with access to the guest virtual machines (VMs).

.Procedure

. Create a parameter file for the z/VM guest:
+
--
.Example parameter file
[source,text]
----
rd.neednet=1 \
console=ttysclp0 \
coreos.live.rootfs_url=<rootfs_url> \
ip=172.18.78.2::172.18.78.1:255.255.255.0:::none nameserver=172.18.78.1 \
zfcp.allow_lun_scan=0 \
ai.ip_cfg_override=1 \
rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
rd.dasd=0.0.4411 \
rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \
fips=1 \
random.trust_cpu=on rd.luks.options=discard \
ignition.firstboot ignition.platform.id=metal \
console=tty1 console=ttyS1,115200n8 \
coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"
----
* For the `coreos.live.rootfs_url` artifact, specify the matching `rootfs` artifact for the `kernel` and `initramfs` that you are booting. Only HTTP and HTTPS protocols are supported.
* For the `ip` parameter, assign the IP address automatically using DHCP, or manually assign the IP address, as described in "Installing a cluster with z/VM on {ibm-z-name} and {ibm-linuxone-name}".
* The default for `zfcp.allow_lun_scan` is `1`. Omit this entry when using an OSA network adapter.
* For installations on DASD-type disks, use `rd.dasd` to specify the DASD where {op-system-first} is to be installed. Omit this entry for FCP-type disks.
* For installations on FCP-type disks, use `rd.zfcp=<adapter>,<wwpn>,<lun>` to specify the FCP disk where {op-system} is to be installed. Omit this entry for DASD-type disks.
+
[NOTE]
====
For FCP multipath configurations, provide available multiple paths to the disk instead of a single path, and add `rd.multipath=default` to enable multipath during installation.
====
+
.Example
[source,text]
----
rd.zfcp=<adapter1>,<wwpn1>,<lun1> \
rd.zfcp=<adapter2>,<wwpn2>,<lun2> \
rd.multipath=default
----
* To enable FIPS mode, specify `fips=1`. This entry is required in addition to setting the `fips` parameter to `true` in the `install-config.yaml` file.
--
+
Leave all other parameters unchanged.

. Punch the `kernel.img`,`generic.parm`, and `initrd.img` files to the virtual reader of the z/VM guest virtual machine.
+
For more information, see link:https://www.ibm.com/docs/en/zvm/latest?topic=commands-punch[PUNCH] ({ibm-title} Documentation).
+
[TIP]
====
You can use the `CP PUNCH` command or, if you use Linux, the `vmur` command, to transfer files between two z/VM guest virtual machines.
====
+
. Log in to the conversational monitor system (CMS) on the bootstrap machine.

. IPL the bootstrap machine from the reader by running the following command:
+
[source,terminal]
----
$ ipl c
----
+
For more information, see link:https://www.ibm.com/docs/en/zvm/latest?topic=commands-ipl[IPL] ({ibm-title} Documentation).
