Installing Zowe – getting the libraries to z/OS
You can install Zowe using SMP/E or using a PAX file.
Follow the instructions.
- From SMP/E
- From a .pax file Where it says pax -ppx -rf .pax
- cd to the product library for example cd /usr/lpp/zowe
- within the directory, unpax using pax -ppx -rf path-to-pax/.pax such as pax -ppx -rf /tmp/zowe3.0.pax
- you can remove the pax file if you no longer need it. Once you have the libraries installed, you edit a zowe.yaml file to define Zowe parameters, then you run a step to create data sets and other objects.
General comment
In the following sections, it refers to configuration keys by using the concatenation of key names and dots.
For example, if you want to update the configuration key zowe.certificate.keystore.type with the value PKCS12, you should set the value for this entry in the zowe.yaml:
zowe:
# Specify the certificate keystore type
certificate:
keystore:
type: PKCS12
where each level is indented two more spaces than the preceding level
If you search for “zowe.certificate.keystore.type”, you will not find it in the file.
Within the configuration is a data set prefix ZWEV3. You may want to use a name like PP.ZWE3 which fits with your data set naming convention.
My set up
/u/tmp/zowep contains my installed libraries
/u/tmp/zowec contains my configuration
Configuring Zowe
The Zowe documentation on the customisation process is here.
- You should have Zowe and the prereqs installed, for example Zowe
installed in /u/tmp/zowep. - Create the directory for the Zowe instance configuration file,
for example /u/tmp/zowec
The instructions below configure the minimal function Zowe instance. This makes it quicker to resolve set up issues, such as certificate and keyring problems.
The instructions then add more function, until it is fully configured.
How to configure Zowe
The Zowe documentation takes the approach of using a large .yaml file for all configuration information. I found this unwieldy, and hard to use.
The customising information has logically separate sections covering
- Creating the PDS
- Creating proclib and parmlib members
- APF definitions
- Creating security definitions
- Creating certificates
- Configuring what runs when Zowe is started.
I found it easier to have a configuration file for each
Creating the PDS
The Zowe documentation describes the official way.
Use /u/tmp/zowep/bin/zwe install –ds-prefix value
Note: That is – – ds-prefix with two dashes.
Where value is the high level qualifier to use. For example PP.ZOWE31
If you use –ds-prefix you do not need to use a zowe.yaml configuration file.
This creates some data sets with the specified High Level Qualifier.
If you are rerunning the step, or upgrading use
/u/tmp/zowep/bin/zwe install –ds-prefix value –allow-overwrite
Create instance specific data sets and members
See the Zowe documentation .
| Description | Parameter | Default value |
|---|---|---|
| Where Zowe MVS data sets will be installed | prefix: | IBMUSER.ZWEV3A |
| PROCLIB where Zowe STCs will be copied over | proclib: | USER.PROCLIB |
| Zowe PARMLIB | parmlib: | IBMUSER.ZWEV3A.CUST.PARMLIB |
| PARMLIB members for plugins | parmlibMembers: zis | ZWESIP00 |
| JCL library where Zowe will store temporary JCLs during initialization | jcllib: | IBMUSER.ZWEV3A.CUST.JCLLIB |
| Utilities for use by Zowe and extensions | loadlib: | IBMUSER.ZWEV3A.SZWELOAD |
| APF authorized LOADLIB for Zowe | authLoadlib: | IBMUSER.ZWEV3A.SZWEAUTH |
| APF authorized LOADLIB for Zowe ZIS Plugins | authPluginLib: | IBMUSER.ZWEV3A.CUST.ZWESAPL |
I created a ins.yaml file with
zowe:
setup:
dataset:
prefix: COLIN.ZOWE
parmlib: COLIN.ZOWE.CUST.PARMLIB
proclib: COLIN.ZOWE.CUST.PROCLIB
jcllib: COLIN.ZOWE.CUST.JCLLIB
authLoadlib: COLIN.ZOWE.SZWEAUTH
authPluginLib: COLIN.ZOWE.CUST.ZWESAPL
and use the command
/u/tmp/zowep/bin/zwe init mvs -c ins.yaml
APF authorise the data sets
The official way of APF defining the Zowe data sets is to use the command
/u/colin/zowep/bin/zwe init apfauth -c in.yaml
This issues some operator commands to dynamically APF authorise two data sets.
SETPROG APF,ADD,DSNAME=COLIN.ZOWE.SZWEAUTH,VOLUME=CBTU07
...
SETPROG APF,ADD,DSNAME=COLIN.ZOWE.CUST.ZWESAPL,VOLUME=CBTU01
...
This does not save definitions across IPL, so you might just as well as define the parameters manually
You can create or update a PROGXX member in the parmlib concatentation, such as PROGZW
APF ADD DSNAME(COLIN.ZOWE.SZWEAUTH) VOLUME(CBTU07)
APF ADD DSNAME(COLIN.ZOWE.CUST.ZWESAPL) VOLUME(CBTU07)
You can the set prog=ZW to activate it.
Once this works, you will need to put the PROGZW in the IPL startup list.
Create the security definitions needed by Zowe.
See Zowe:Create the security definitions .
Create the Started Task JCL procedures
The Zowe command
zwe init stc -c in.yaml
copies 3 members (ZWESISCH, ZWESISTC, ZWESLSTC) from COLIN.ZOWE.SZWESAMP into the user specified PROCLIB, and does a small amount of configuration. For example
...
//********************************************************************/
//ZWELNCH EXEC PGM=ZWELNCH,REGION=&RGN,TIME=NOLIMIT,
// PARM='ENVAR(_CEE_ENVFILE=DD:STDENV),POSIX(ON)/&HAINST.'
//STEPLIB DD DSNAME={zowe.setup.dataset.authLoadlib},
//STEPLIB DD DSNAME=COLIN.ZOWE.SZWEAUTH,
// DISP=SHR
//SYSIN DD DUMMY
...
//STDENV DD *
_CEE_ENVFILE_CONTINUATION=
_CEE_RUNOPTS=HEAPPOOLS(OFF),HEAPPOOLS64(OFF)
_EDC_UMASK_DFLT=0002
CONFIG={ZWE_CLI_PARAMETER_CONFIG}
CONFIG=/u/colin/zowec/in.yaml
/*
...
The bold lines are substituted with the configuration values.
For the ZWESLSTC member, check the correct yaml file is being used.
Once you have checked the JCL, and made any site specific changes, you need to copy them to the SYS1.PROCLIB concatenation.
You should use a started task procedure name of 7 characters or less. Zowe creates BPXAS jobs with the zowe procedure name as a prefix. If the name is 7 characters or less, these jobs are like ZWESTC1, ZWESTC2, ZWESTC3 etc.
If you use a procedure name of 8 characters, then the BPXAS jobs all have the same name, so when you issue an operator command such as F ZWESLSTC,APPL=DISPLAY, all the jobs will be passed the request, and you will get IEE342I MODIFY REJECTED-TASK BUSY from each of the BPXAS tasks.
Creating certificates
You can use existing certificate, key stores and trust stores. You will need to specify the names of them in the run time configuration.
Create the SCHED member definitions
Two modules have to be defined as KEY(4) NOSWAP. Either add them to an existing SCHEDxx member, or create a SCHEDZW member,
The source is in .SZWESAMP(ZWESISCH)
PPT PGMNAME(ZWESIS01) KEY(4) NOSWAP
PPT PGMNAME(ZWESAUX) KEY(4) NOSWAP