Set variables for Liberty profile servers
Set one or more WebSphere variables before we can use the job manager to remotely install and manage Liberty profile servers. We can set the variables in an console, a wsadmin script, or the registerHost command. The variables specify the root directories to which to install Liberty profile resources and specify search paths for finding resources that are not yet registered with the job manager.
Liberty profile resources include projects, software development kits (Java runtime environments), Liberty profile runtimes, servers, and applications. For more information, see Liberty profile resources.
For an console, wsadmin, or the registerHost command to set values for Liberty profile server variables, start the job manager or the deployment manager.
We can specify values for WebSphere variables and built-in variables.
- WebSphere variables
Before we can install Liberty resources using the job manager, set one or more WebSphere variables. The amount of configuration depends on the topology being deployed. We can set values for variables using the job manager console, deployment manager console, wsadmin, or registerHost command.
We can install Liberty resources to a working, non-shared location or to a shared location. Do not share resources that are installed to the working location.
Resources installed to a shared location can be used by Liberty profile servers that are installed to a working location. For example, we can configure working Liberty profile servers to use one or more of the following types of shared resources:
- Liberty profile runtime
- Software development kit
- Application
Install resources in shared locations as read-only. We can share resources within a host or across hosts using disk sharing approaches such as Network File System (NFS).
During resource installation, unless there is a name conflict, the resources in the Liberty profile compressed file are extracted to the working root directory specified by WLP_WORKING_DIR or to the shared directory specified by WLP_SHARED_DIR.
Default variables Description WLP_WORKING_DIR Installation or inventory search path for nonshared working Liberty profile resources. If a job submission does not specify that the installation or search directory be shared, then the job uses this variable. By default, Liberty resources are installed to the nonshared working directory that this variable defines. Specify an absolute path for this variable. Do not specify a relative path.
WLP_SHARED_DIR Installation or inventory search path for shared Liberty profile resources. If a job submission specifies that the installation or search directory be shared, then the job uses this variable. Specify an absolute path for this variable. Do not specify a relative path.
WLP_ADDITIONAL_DIRS (Optional) Specifies additional paths to search for Liberty resources beyond the paths included in the WLP_SHARED_DIR and WLP_WORKING_DIR variables. We must configure the additional search paths for Liberty resources to:
- Search for previously installed software development kits managed separately from the job manager.
- Search for any server resources that are not installed in the default working and shared directories. For example, you might define different installation locations relative to the home directories of several different users. For more information, see the descriptions of the HOME and USER variables.
Specify an absolute path for this variable. Do not specify a relative path.
- Built-in variables
When you use the job manager to remotely install and manage Liberty profile servers, we can set the following built-in variables to customize installation locations and Liberty profile configuration files based on operating system home directory, operating system user, host name, and project membership:
- HOME
- Contains the home directory of the operating system user name used to submit an Install Liberty profile resources job. We can use the HOME variable to set up a working directory that is relative to the home directory of the submitting user; for example:
WLP_WORKING_DIR=${HOME}/working
- USER
- Contains the name of the operating system user used to submit an Install Liberty profile resources job. We can use the USER variable to set up a working directory for each user, relative to a global directory; for example:
WLP_WORKING_DIR=/working/${USER}
When using the HOME variable or the USER variable to customize the installation location, configure the WLP_ADDITIONAL_DIRS variable with the specific directories for each user; for example:
WLP_ADDITIONAL_DIRS=/usr/home/user1;/usr/home/user2
If we do not include the directories in the WLP_ADDITIONAL_DIRS variable, inventory jobs do not locate the associated Liberty profile resources on the target hosts.
- HOSTNAME
- Contains the configured host name of the target host where an Install Liberty profile resources job is run. We can use the HOSTNAME variable in the server bootstrap.properties file; for example:
hostname=${HOSTNAME}
We can use the hostname variable in the server configuration file, server.xml; for example:
<httpEndpoint host="${hostname}" httpPort="9081" httpsPort="9444" id="defaultHttpEndpoint"/>
- CURRENT_PROJECT
- Contains the name of the project included in the Liberty profile resources compressed file.
We can set WebSphere variables for all target hosts at a specified scope or set WebSphere variables at a target host level.
- Set WebSphere variables for all target hosts at a specified scope.
We can use any of the following methods to set WebSphere variables for all target hosts at a specified scope:
- Set variables using an console.
- In a job manager console or a deployment manager console, click Environment > WebSphere variables.
- Specify the cell, node, or server scope. In most cases, we can select the cell scope.
- Click New.
- For Name, specify a Liberty profile variable name such as WLP_WORKING_DIR.
- For Value, specify the installation and inventory search path, such as c:/resources.
- Save the changes.
- To set additional variables, repeat these steps.
- Set variables using wsdmin.sh.
Use the AdminConfig create command to set variables at the cell, node, or server scope.
- Open a command prompt at the bin directory of the job manager profile.
- Start wsadmin.sh and use the Jython scripting language.
wsadmin -lang jython
- Run the AdminConfig create command. Specify the scope, variable name, and variable value. In most cases, we can define the variable at the cell scope.
For example, set a cell-scoped WLP_WORKING_DIR variable to the c:/working directory:
AdminConfig.create('VariableSubstitutionEntry', '(cells/cell_name|variables.xml#VariableMap_1)', '[[symbolicName "WLP_WORKING_DIR"] [description ""] [value "c:/working"]]')
- Save the variable changes.
AdminConfig.save()
- To set additional variables, repeat these steps.
- End the wsadmin session.
quit
- Set WebSphere variables at the target host level.
We can use the following methods to set WebSphere variables at the target host level, thereby overriding the same variables set at a higher level scope, if they exist:
- Set variables in the host properties when registering a host with the registerHost command.
- Open a command prompt at the bin directory of the job manager profile or the dmgr profile.
- Start wsadmin.sh and use the Jython scripting language.
wsadmin -lang jython
- Run an AdminTask registerHost command that specifies the variable name and value.
For example, set the WLP_WORKING_DIR variable to use the C:/liberty directory:
AdminTask.registerHost('-host host -hostProps [[username admin][password password] [saveSecurity true][WLP_WORKING_DIR C:/liberty]]')For more information on registerHost, see Registering host computers with job managers.
- Save the changes.
- To later change a variable, we can use the AdminTask modifyManagedNodeProperties command.
For example, set the WLP_WORKING_DIR variable to use the C:/liberty2 directory:
AdminTask.modifyManagedNodeProperties('-managedNodeName host -managedNodeProps "[WLP_WORKING_DIR C:/liberty2]"')
Results
After you save the changes, the changes are viewable in the list of variables on a console WebSphere variables page.
Avoid trouble: After we have defined the variables, see Packaging Liberty profile resources for information on how to properly package files for the Install Liberty profile resources job. If we use IBM Installation Manager to install a Liberty profile, create a subdirectory under the location of WLP_WORKING_DIR. This directory will be used to identify this instance of the Liberty profile runtime. Use this directory as the installation directory during installation with IBM Installation Manager. If WLP_WORKING_DIR is set to /liberty/working, for example, create a runtime_1 subdirectory; then, use /liberty/working/runtime_1 as the installation directory during installation using IBM Installation Manager.gotcha
What to do next
We can now submit a job that installs resources from a Liberty profile resources compressed file, as well as an inventory job that searches for previously existing Liberty profile resources.
We can later set variables that override the values of variables for different target hosts or substitute user-defined variables:
- We can choose to override the values of Liberty variables on individual hosts by changing the target properties for each host. First, define the appropriate default WebSphere variables at a higher-level scope, for example:
WLP_SHARED_DIR=/shared WLP_WORKING_DIR=/working WLP_ADDITIONAL_DIRS=...Then, override the values of these variables for each target that differs from the default value. For example, if most of the hosts are on AIX, HP-UX, Linux or Solaris operating systems, with some Windows hosts in the environment, after registering each Windows host, we can add the following host properties:
WLP_SHARED_DIR=c:/shared WLP_WORKING_DIR=c:/working
- We can edit target host specific properties to substitute a user-defined variable for individual targets. Substituting a user-defined variable is useful when we have multiple network interfaces on each target, and to specify which one to use for each target. We can define this variable in a server bootstrap.properties file; for example:
hostname=${hostname.interface1}
For each target, define the actual value of the user-defined variable in the target host specific properties of that host. For example, for host1, define the value of the interface as hostname.interface1=host1.xyz.com and define host2 as hostname.interface1=host2.xyz.com.
Related concepts
Liberty profile resources
Related tasks
Submitting jobs to deploy Liberty profile installations Registering host computers with job managers Install Liberty profile resources using the job manager Start and stop the job manager Packaging Liberty profile resources
Administrative job types