GitHubContribute in GitHub: Edit online

Configure the UKO server

This chapter will guide you through the UKO server set up which requires the configuration of a WebSphere Liberty server. The UKO z/OSMF installation workflows provide a server example workflow to configure and start the UKO server. Either specify the variables using a properties file (see examples here) or specify them once you are prompted by the step.

The following directories are required for the UKO server configuration:

  • ${UKO_INSTALL_DIR}: location where UKO is installed
  • ${JAVA_HOME}: location where Java is installed
  • ${WLP_INSTALL_DIR}: location where WebSphere Liberty is installed
  • ${WLP_USER_DIR}: the parent directory under which the ${UKO_SERVER_DIRECTORY} will be created, for example /etc/liberty

Prerequisite tasks

The following tasks need to be completed before you can complete this chapter:

Directory setup

The following directories need to be created:

  • ${UKO_SERVER_DIRECTORY} - the directory where the configuration files of the active UKO server (server.env and jvm.options) are residing
  • ${WLP_OUTPUT_DIR} - optional output directory for the server logs, otherwise they will be created in the ${UKO_SERVER_DIRECTORY}

The ${UKO_SERVER_DIRECTORY} requires a special format. WebSphere Liberty expects to find the configuration files in a directory with the name of the server under ${WLP_USER_DIR}/servers/. It is recommended to use the name of the UKO server started task ${UKO_SERVER_STC_NAME} as server name, so that the ${UKO_SERVER_DIRECTORY} will be ${WLP_USER_DIR}/servers/{UKO_SERVER_STC_NAME}.

The createDirectories step of the server example workflow will guide you through the creation of the required directories as well as the allocation of ZFS datasets that will be mounted there.

Configuration files and folders

The configureUkoServer step of the server example workflow will help you with this part of the instructions.

Server configuration file server.env

Copy server.env from the ${UKO_INSTALL_DIR} to the ${UKO_SERVER_DIRECTORY} and adjust it to match your environment (this file is in EBCDIC!). The sub-step substituteJvmOptions of theconfigureUkoServer step will help you to specify the most commonly used parameters and copy it in place.

This file is self-documenting. The reference section contains a copy of server.env before customization as it is shipped with the latest release.

Java Options

Copy jvm.options from the ${UKO_INSTALL_DIR} to the ${UKO_SERVER_DIRECTORY} and adjust it to match your environment (this file is in EBCDIC!). The sub-step substituteJvmOptions of theconfigureUkoServer step will help you to specify the most commonly used parameters and copy it in place.

This file is self-documenting. The reference section contains a copy of java.options before customization as it is shipped with the latest release.

Change directory ownership and permissions

After both files are in place, change the ownership of the ${WLP_OUTPUT_DIR} and the ${UKO_SERVER_DIRECTORY} to be owned by the ${UKO_SERVER_STC_USER} and set the permission bits to 700 so that only this technical user has access to the file. The setDirectoryPermissions sub-step will help you with that. If you also specified ${UKO_SERVER_STC_GROUP} then the group ownership will be transferred to this group and the permission bits changed to 770.

Create the server procedure

Run the createServerProc step of the server example workflow to create a procedure to start the server and copy it to your ${UKO_ZOS_PROCLIB}. Alternatively, you can use the following sample procedure and replace all ${placeholders} to match your environment:

//${UKO_SERVER_STC_NAME} PROC PARMS='${UKO_SERVER_STC_NAME}'
// SET WLPHOME='${WLP_INSTALL_DIR}'
//*
//STEP1    EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT,
//  PARM='PGM &WLPHOME./lib/native/zos/s390x/bbgzsrv --clean &PARMS.'
//STEPLIB  DD DSN=${DB2_HLQ}.SDSNEXIT,DISP=SHR
//         DD DSN=${DB2_HLQ}.SDSNLOAD,DISP=SHR
//         DD DSN=${DB2_HLQ}.SDSNLOD2,DISP=SHR
//STDOUT   DD   SYSOUT=*
//STDERR   DD   SYSOUT=*
//STDIN    DD   DUMMY
//STDENV   DD   *
_BPX_SHAREAS=YES
JAVA_HOME=${JAVA_HOME}
WLP_USER_DIR=${WLP_USER_DIR}
#JVM_OPTIONS=<Optional JVM parameters>
//*
// PEND
//

Configure security for the server

Perform the statements in the Security setup for the Liberty server chapter. Those are covered in the configureSecurity step of the server example workflow.

Start the server

You are now ready to start the server. Issue the following command:

/START ${UKO_SERVER_STC_NAME}

Alternatively, you can use the startServer step of the server example workflow. The validateConsoleAPI sub-step checks whether the user ID running the step is allowed to issue console commands and whether a task with the ${UKO_SERVER_STC_NAME} is already running. Afterwards, in the startServer_console sub-step, it issues the START command to the console.

Note: To use that part of the workflow, your userid needs to be enabled to use the console API. The provided workflow is sending console requests to /zosmf/restconsoles/consoles/defcn. This means that the name of the console that is used to issue the command is generated by the REST Console API, by adding CN to the logon user ID.

For example, if user UKOSTC plans to accept the default console name, UKOSTCCN, this user can issue this RACF command to set console attributes for the console:

ADDUSER UKOSTCCN OPERPARM(AUTH(MASTER) ROUTCODE(ALL))

If the user ID is longer than 6 characters, the user ID is truncated. For example, if the user ID is UKORACF, the console name is UKORACFN.

Refer to the z/OSMF documentation for more information on issuing commands from a system console.

What's next