SLES 11/12

SLES installation instructions for package based installs, either automatically using zypper or manually with pre-downloaded rpm packages. The Perforce IPLM platform can be installed via packages or via the Appliance Installation. The Appliance Installation method deploys an already configured VM into the customer Hypervisor. See the Perforce Appliance Installation page for more details.

The package installation method for Perforce IPLM on SLES uses RPM packages installed via zypper. The instructions below are listed at the top of each of the following subsections. In case zypper installation is not available at the customer site the manual RPM installation process is outlined.

The Pi Command Line Client (IPLM CLI) can also be installed via a self-extracting tarball (the ".run" file) to enable installation in an NFS mounted centralized tools location. See the PiClient Self-Extracting Archive page for details. 

The IPLM CLI client can also be installed with the scripted Client installation method, which sets up VersIC, PiExtras, and the necessary environment setup in a single step. See the Client-Only Tutorial Installation for Perforce.

Setting up the Repo

Install the Perforce rpm package repo.

1. zypper addrepo -t rpm-md http://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ mdx_rpm
2. zypper --gpg-auto-import-keys ref mdx_rpm
   Note: Since Perforce package repos are constantly updated, run the above command before trying to install any latest Perforce packages. 
3. wget http://mdx.jfrog.io/mdx/mdx-generic/RPM-GPG-KEY-mdx-v2
4. rpm --import RPM-GPG-KEY-mdx-v2

Metrics Installation

Metrics installation can be skipped if you are not going to monitor Perforce IPLM metrics.

The Metrics package is installed as a standard rpm package using the zypper command.

1. Install mdx-metrics package,
   zypper in mdx-metrics
2. Refer to the Metrics Monitoring page in the Reference Guide for configuration file modifications
3. Start mdx-metrics service, which includes the Prometheus and Grafana servers and the Node and StatsD Exporters,
   service mdx-metrics start 

Metrics Manual Install

1.  Download packages
1.1 Browse to http://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download the mdx-metrics rpm package.
1.2 Download dependencies
    wget https://mdx.jfrog.io/mdx/mdx-generic/grafana/mdx-grafana-bin-6.1.6.tgz
    wget https://mdx.jfrog.io/mdx/mdx-generic/jmx-exporter/mdx-jmx-exporter-0.11.0.tgz
    wget https://mdx.jfrog.io/mdx/mdx-generic/prometheus/mdx-node-exporter-bin-0.17.0.tgz
    wget https://mdx.jfrog.io/mdx/mdx-generic/prometheus/mdx-prometheus-bin-2.9.2.tgz
    wget https://mdx.jfrog.io/mdx/mdx-generic/prometheus/mdx-statsd-exporter-bin-0.11.2.tgz

**Transfer rpm to and tgz files to the target machine**
 
2. Install dependencies
   mkdir -p /usr/share/mdx/metrics
   cd /usr/share/mdx/metrics
   tar xf <path to mdx-grafana-bin-6.1.6.tgz>   tar xf <path to mdx-jmx-exporter-0.11.0.tgz>   tar xf <path to mdx-node-exporter-bin-0.17.0.tgz>   tar xf <path to mdx-prometheus-bin-2.9.2.tgz>   tar xf <path to mdx-statsd-exporter-bin-0.11.2.tgz>3. On the target machine install the mdx-metrics rpm
   rpm -ivh <mdx-metrics> 

4. Refer to the Metrics Monitoring page in the Reference Guide for configuration file modifications

5. Start mdx-metrics service, which includes the Prometheus and Grafana servers and the Node and StatsD Exporters,
   service mdx-metrics start

IPLM Server installation

Perforce IPLM server is installed as standard Linux rpm packages using the zypper command.

Install Java

Java-8 JRE is required to run IPLM Server. In order to help troubleshooting problems that might be related with IPLM Server, Java-8 JDK is recommended.

Both Oracle Java and OpenJDK are supported.

  1. For Oracle Java packages, please check https://www.oracle.com/technetwork/java/javase/downloads/index.html. For example,

    wget --no-check-certificate --no-cookies \
         --header "Cookie: oraclelicense=accept-securebackup-cookie" \ 
         http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
  2. For OpenJDK, please install java-1.8.0-openjdk_headless package that comes with the OS.

    As root, run the command below to install Java 8
      zypper in java-1_8_0-openjdk-headless
    If the OS repo doesn't come with the Java 8 package, use the commands below
      zypper in mozilla-nss
      wget http://mdx.jfrog.io/mdx/mdx-generic/java/java-1_8_0-openjdk-headless-1.8.0.222-351.4.x86_64.rpm
      rpm -ivh --nodeps java-1_8_0-openjdk-headless-1.8.0.222-351.4.x86_64.rpm
    To verify Java program version, run command "java -version" and it should return 'openjdk version "1.8.0_xxx"'.
    

Install 3.0 IPLM Server packages

Follow the instructions below to install IPLM Server for the latest Pi v3 release. If a 2.x version of IPLM Server is installed already, please refer to the section of "Upgrade 2.x IPLM Server to 3.0 IPLM Server " below for upgrade instructions. 

1. (Optional) If events support is to be enabled, install and start backend redis server
1.1 Install backend redis server, run
    zypper in mdx-backend-redis
1.2 Start redis server, run
    service mdx-backend-redis start

2. Install IPLM Server
2.1 As root, run
    zypper in -y mdx-piserver
    Note: For 3.0 and later IPLM Server releases, Neo4j is installed automatically when mdx-piserver package is installed.
          The behavior of Neo4j installation can be controlled with MDX_PISERVER_NEO4J_INSTALL environmental variable.
          The following command uses neo4j-enterprise-3.5.3 tarball that is pre-downloaded,
              MDX_PISERVER_NEO4J_INSTALL=<full path of Neo4j tarball> zypper install -y mdx-piserver
          The following command skips installation of Neo4j and only installs files for IPLM Server,
              MDX_PISERVER_NEO4J_INSTALL=0 zypper install -y mdx-piserver
2.2 (Optional) Configure Java executable for IPLM Server
    vi /etc/mdx/piserver.conf # configure javaexe option with full path of preferred Java executable
    Note: If the system default Java program is the preferred Java executable, no need to configure javaexe option.
2.3 (Optional) If Neo4j is not installed or should not be started on the node where IPLM Server is installed, disable local Neo4j
    vi /etc/mdx/piserver.conf # configure "neo4j-local=no"2.4 (Optional) If Neo4j is installed on a separate node or cluster, specify Neo4j node in piserver.yml
    vi /etc/mdx/piserver.yml # configure "uri = http://<neo4j host>:7474/pi" in the "neo4j" section
2.5 Start IPLM Server, run
    service piserver start
    Note: If "neo4j-local=yes" is configured in /etc/mdx/piserver.conf, it may take up to a couple of minutes for IPLM Server to be fully ready.
          Neo4j log files are under /var/log/mdx-neo4j/ and PiServer log files are under /var/log/mdx-piserver/.
2.6 Start IPLM Server automatically after reboot, run
    chkconfig piserver on
 

HA Neo4j Cluster Installations

Note that if you have a clustered installation you will need to update the mdx-piserver-neo4j-plugin on each Neo4j node, and then restart Neo4j on each Neo4j Node. See Perforce IPLM HA with HAProxy and Neo4j cluster for additional information.

Upgrade IPLM Server 2.x to IPLM Server 3.0

For Pi 3.0 and later releases, there's no mdx-piserver-tools package any more. The mdx-piserver-tools package in Pi 2.x releases was used to install Neo4j (and Java in some cases). To upgrade IPLM Server 2.x to IPLM Server 3.0, the mdx-piserver-tools package and mdx-piserver package need to be manually removed and the new 3.0 mdx-piserver package needs to be installed.

1. Stop IPLM Server service if it's running.
   service piserver stop
   Note: to ensure IPLM Server and Neo4j daemons are stopped, run "ps aux | grep java" and make sure related java processes do not exist.
2. (Optional) Save Neo4j folders if "neo4j-local=yes" is configured in /etc/mdx/piserver.conf.
   cp -a /usr/share/mdx/neo4j /usr/share/mdx/neo4j.bak
   cp -a /var/lib/mdx-neo4j /var/lib/mdx-neo4j.bak
3. Backup IPLM Server config file.
   cp -a /etc/mdx/piserver.conf /etc/mdx/piserver.conf.bak
   cp -a /etc/mdx/piserver.yml /etc/mdx/piserver.yml.bak
4. Remove 2.x mdx-piserver-tools package and mdx-piserver package.
   rpm -e mdx-piserver mdx-piserver-tools
5. (Optional) Copy back the saved Neo4j folders if the Neo4j folders are saved above in step 2.
   cp -a /usr/share/mdx/neo4j.bak /usr/share/mdx/neo4j
   cp -a /var/lib/mdx-neo4j.bak /var/lib/mdx-neo4j
6. Install 3.0 mdx-piserver package.
   zypper in -y mdx-piserver
7. Review and modify IPLM Server config files as needed.
   # vi /etc/mdx/piserver.conf
   # vi /etc/mdx/piserver.yml
8. Start IPLM Server service
   service piserver start

Install 2.x IPLM Server packages

This section applies to fresh install of 2.x IPLM Server. If an older version of 2.x IPLM Server is installed already, please refer to the section of "2.x IPLM Server Upgrade" below for upgrade instructions. 

1. (Optional) If events support is to be enabled, install and start backend redis server
2.1 Install backend redis server, run
    zypper in mdx-backend-redis
2.2 Start redis server, run
    service mdx-backend-redis start

2. Install tools for running IPLM Server.
2.1 Java-8 JRE should be pre-installed before installing IPLM Server.
    Note: OpenJDK-8 JRE is the preferred Java run-time for IPLM Server 2.33.0 and later versions. Oracle JRE should continue to work.
2.2 As root, run
    zypper in -y mdx-piserver-tools-2.36.3
2.3 As root, run
    /usr/share/mdx/products/piserver/bin/install-rpm-deps.sh
    Note: Without any arguments, the install-rpm-deps.sh script only downloads and installs Neo4j.
          The script also supports two options, "--java <JRE tarball>" and "--neo4j <Neo4j tarball>".
          The options allow user to specify local Java and/or Neo4j tarball for installation.

3. Install IPLM Server
3.1 As root, run
    zypper in -y mdx-piserver-2.36.3
3.2 (Optional) Configure Java executable for IPLM Server
    vi /etc/mdx/piserver.conf # configure javaexe option with full path of preferred Java executable
    Note: If the system default Java program is the preferred Java executable, no need to configure javaexe option.
3.3 (Optional) If Neo4j is not to be started along with IPLM Server, disable local Neo4j
    vi /etc/mdx/piserver.conf # configure "neo4j-local=no"3.4 (Optional) If Neo4j is installed on a separate node or cluster, specify Neo4j node in piserver.yml
    vi /etc/mdx/piserver.yml # configure "uri = http://<neo4j host>:7474/pi" in the "neo4j" section
3.5 Start PiServer, run
    service piserver start
    Note: If "neo4j-local=yes" is configured in /etc/mdx/piserver.conf, it may take up to a couple of minutes for IPLM Server to be fully ready.
          Neo4j log files are under /var/log/mdx-neo4j/ and PiServer log files are under /var/log/mdx-piserver/.
3.6 Start IPLM Server automatically after reboot, run
    chkconfig piserver on
 

2.x PiServer Upgrade

The instructions below apply to IPLM Server upgrade to a newer version of 2.x IPLM Server.

1. As root, run
   service piserver stop
2. As root, run
   zypper up -y mdx-piserver-<newer 2.x PiServer version>3. As root, run
   service piserver start

IPLM Server Property Configuration File

For Pi 3.0 and later releases, /etc/mdx/piserver.yml is the only IPLM Server property file. IPLM Server service doesn't use  /etc/mdx/piserver.properties file any more.

Note: The /etc/mdx/piserver.yml property file has been adopted since Pi 2.35.0 release. For 2.35.0 and later 2.x releases, IPLM Server creates /etc/mdx/piserver.yml property file using the settings in /etc/mdx/piserver.properties file. After IPLM Server gets started for the first time, the new configuration file /etc/mdx/piserver.yml is created. File  /etc/mdx/piserver.yml is in YAML format. Further IPLM Server configuration changes can be done in either of /etc/mdx/piserver.properties and /etc/mdx/piserver.yml. IPLM Server will use the configuration file that has newer timestamp. If /etc/mdx/piserver.properties is newer, it will be converted and overwrite /etc/mdx/piserver.yml. If  /etc/mdx/piserver.yml is newer, it will be used directly by IPLM Server.

IPLM Server manual installation

1. Download the required rpm packages
1.1 Browse to https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download these rpm packages,
    <mdx-piserver-tools> (2.x releases only)
    <mdx-piserver>    <mdx-backend-redis> (Optional, needed if events support is to be enabled and no other redis server is available)
1.2 Download Neo4j tarball.
    wget https://mdx.jfrog.io/artifactory/mdx-generic/neo4j/enterprise/neo4j-enterprise-3.5.35-unix.tar.gz
1.3 If the optional <mdx-backend-redis> is needed, download the associated redis tarball.
    wget https://mdx.jfrog.io/mdx/mdx-generic/redis/mdx-redis-bin-5.0.7.tgz

**Transfer these files to the target IPLM Server machine**

2. (Optional) If events support is to be enabled and no existing redis server is to be used, install and start backend redis server
2.1 mkdir -p /usr/share/mdx/redis
2.2 cd /usr/share/mdx/redis
2.3 tar xf <path to mdx-redis-bin-5.0.7.tgz>2.4 rpm -ivh <mdx-backend-redis>3. For manual install of 2.x releases,
3.1 If the target system already has older version of mdx-piserver packages installed,
    rpm -Uvh <mdx-piserver> <mdx-piserver-tools>    Stop here, manual install is done
3.2 For fresh install, install the tools package first.
    rpm -ivh <mdx-piserver-tools>3.3 Install Neo4j manually.
    cd /usr/share/mdx/neo4j
    tar xf <neo4j-enterprise-3.5.35-unix.tar.gz>    ln -s neo4j-enterprise-3.5.35 current
    /usr/bin/getent group neo4j || /usr/sbin/groupadd -r neo4j
    /usr/bin/getent passwd neo4j || /usr/sbin/useradd -r -d /usr/share/mdx/neo4j -g neo4j -s /bin/false neo4j
    chown -R neo4j:neo4j /usr/share/mdx/neo4j/
3.4 Install PiServer.
    rpm -ivh <mdx-piserver>4. For manual install of 3.x releases,
4.1 If the target system has the old 2.x IPLM Server packages installed, please refer to the section "Upgrade IPLM Server 2.x to IPLM Server 3.0" above and use rpm command to install the mdx-piserver package.
4.2 Install IPLM Server.
    MDX_PISERVER_NEO4J_INSTALL=<neo4j-enterprise-3.5.35-unix.tar.gz> rpm -ivh <mdx-piserver>    Note: If Neo4j is not to be installed, use the command below.
              MDX_PISERVER_NEO4J_INSTALL=0 rpm -ivh <mdx-piserver>5. Configure /etc/mdx/piserver.conf
5.1 (Optional) Configure Java executable for Piserver
    Edit /etc/mdx/piserver.conf and configure "javaexe" option with full path of preferred Java executable
    Note: If the system default Java program is the preferred Java executable, no need to configure javaexe option.
5.2 (Optional) If Neo4j is not installed or not to be started on the node where IPLM Server is deployed, disable local Neo4j
    Edit /etc/mdx/piserver.conf and configure "neo4j-local=no" in /etc/mdx/piserver.conf.

IPLM CLI Installation

Install IPLM Client package
1. As root, run
   zypper in -y mdx-picli

IPLM Client Upgrade

Update IPLM Client on system that has an older version of IPLM Client installed already
1. As root, run:
   zypper up -y mdx-picli
   Note: the mdx-picli-lib package will be updated automatically, if needed

IPLM Client Manual Install

1. Browse on https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download,
   <mdx-picli>   <mdx-picli-lib>  
**Transfer the packages to the target machine**
  
2. On the target machine install the downloaded packages.
   rpm -i <mdx-picli> <mdx-picli-lib>3. To upgrade IPLM Client, typically only <mdx-picli> package needs to be updated
   rpm -Uvh <mdx-picli>

IPLM Web Installation

Perforce IPLM Web server is installed as standard Linux packages using the 'zypper' command.

1. As root, run
   zypper in -y mdx-piweb
   Note: the mdx-piweb-lib package will be downloaded and installed automatically
2. To start IPLM Web, run
   systemctl daemon-reload 
   service piweb start
3. To start IPLM Web automatically after reboot, run
   chkconfig piweb on

IPLM Web Upgrade

Update IPLM Web on system that has IPLM Web installed already
1. As root, run:
   zypper up -y mdx-piweb
   Note: the mdx-piweb-lib package will be updated automatically, if needed

IPLM Web Manual Install

1 Download the IPLM Web rpm packages
  Browse to https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download,
    <mdx-piweb>    <mdx-piweb-lib> **Transfer the packages to the target machine** 

2. On the target machine, install the rpms.
   rpm -ivh <mdx-piweb> <mdx-piweb-lib>   systemctl daemon-reload
   service piweb start
 
3. To start IPLM Web automatically after reboot, run
   chkconfig piweb on

4. To upgrade IPLM Web, typically only <mdx-piweb> package needs to be updated
   rpm -Uvh <mdx-piweb>
 

IPLM Web HTTP Port Customization

Starting from version "mdx-piweb-1.3.0", IPLM Web by default listens on port 80. In order to change to a different port,
1. service piweb stop
2. Edit file "/etc/mdx/piweb.conf" and modify setting of'PIWEB_PORT' as desired.
3. service piweb start
Note: the port setting will remain un-changed during upgrade

IPLM Web Document Installation

Perforce IPLM Document package can be installed using the 'zypper' command.

Note: IPLM Web document requires IPLM Web service. So install IPLM Web first as noted above.
As root, run
   zypper in -y mdx-piweb-doc
# To view document on IPLM Web, start piweb service and browse http://<piweb service host name>/media/docs/

IPLM Web Document Package Upgrade

To update IPLM Web Document
As root, run:
   zypper up -y mdx-piweb-doc

IPLM Web Document package Manual Install

1 Download the IPLM Web  Document rpm package
  Browse to https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download,
    <mdx-piweb-doc> **Transfer the packages to the target machine** 

2. On the target machine, install the rpm
   rpm -ivh <mdx-piweb-docb># To view document on IPLM Web, start piweb service and browse http://<piweb service host name>/media/docs/ 

PiExtras Installation

Perforce IPLM PiExtras tool is installed as standard Linux packages using the 'zypper' command.

Install PiExtras package
1. As root, run
   zypper in -y mdx-piextras

PiExtras Upgrade

Update PiExtras on system that has PiExtras installed already
1. As root, run:
   zypper up -y mdx-piextras

PiExtras Manual Install

1. Browse to https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download,
   <mdx-piextras> 
**Transfer the rpm to the target machine**

2. On the target machine install the rpm
   rpm -ivh <mdx-piextras>3. To upgrade PiExtras
   rpm -Uvh <mdx-piextras>

IPLM Cache Installation

Note

Warning: IPLM Cache requires a dedicated server for production deployments. IPLM Cache is I/O intensive and should be hosted on a separate server from IPLM Server and IPLM Web

Perforce IPLM Cache server is installed as standard Linux packages using the 'zypper' command.

1. As root, install backend server packages
   zypper in -y mdx-backend-redis
   zypper in -y mdx-backend-mongodb
2. Install PiCache packages
   zypper in -y mdx-picache
   Note: mdx-picache-lib will be installed automatically
3. Review/Update IPLM Cache settings in /etc/mdx/picache.conf
3.1 "root" configuration option defines the location IPLM Cache will use to populate IPVs on disk, and needs to be defined. 
     The "root" directory path needs to be created before starting the IPLM Cache server.
3.2 If "worker-user" is defined, make sure the user has the write permission to the "root" path.
    If "worker-user" is not defined, make sure user "mdxadmin" has the write permission to the "root" path.
    Note: The "root" path typically points to a folder exported from filer.
            If so, please make sure the mount options allow "worker-user" or "mdxadmin" to write to it.
            Typically, the "root" path is owned by "worker-user" or "mdxadmin" to avoid any permission problem.
3.3 "dm-program" needs to point to valid p4 executable
4. Start IPLM Cache daemons
   service mdx-backend-redis start
   service mdx-backend-mongodb start
   service picache start
5. To stop IPLM Cache, run:
   service picache stop
   Note: picache can normally be stopped/restarted alone, without having to stop
         mdx-backend-redis/mdx-backend-mongodb
   Note: In case mdx-backend-redis/mdx-backend-mongodb needs to be shut down, stop picache first
6. To start IPLM Cache automatically after reboot, run
   chkconfig mdx-backend-redis on
   chkconfig mdx-backend-mongodb on
   chkconfig picache on

IPLM Cache Upgrade

Update IPLM Cache on system that has PiCache installed already
1. As root, run:
   zypper up -y mdx-picache
   Note: the mdx-picache-lib package will be updated automatically, if needed

IPLM Cache Manual Install

1.  Download the required rpm packages:
1.1 Browse to https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download these rpm packages:
    <mdx-picache>    <mdx-picache-lib>    <mdx-backend-redis> (if not installed already)
    <mdx-backend-mongodb>1.2 Download dependent tar files
    wget https://mdx.jfrog.io/mdx/mdx-generic/redis/mdx-redis-bin-5.0.7.tgz (if mdx-backend-redis is not installed already)
    wget https://mdx.jfrog.io/mdx/mdx-generic/mongodb/mongodb-linux-x86_64-3.2.20.tgz
  
**Transfer rpms and tar files to the target machine**
 
2. On the target machine install the rpms
   rpm -ivh <mdx-picache> <mdx-picache-lib> 
3.  Install dependencies
3.1 Install mdx-backend-redis, if not already installed
    rpm -ivh <mdx-backend-redis rpm package>    cd /usr/share/mdx/redis
    tar xf <path to mdx-redis-bin-5.0.7.tgz>3.2 Install mdx-backend-mongodb
    rpm -ivh <mdx-backend-mongodb rpm package>    cd /usr/share/mdx/mongodb/
    tar xf <path to mongodb-linux-x86_64-3.2.20.tgz> 
4.  Start IPLM Cache daemons
    service mdx-backend-redis start
    service mdx-backend-mongodb start
    service picache start

5. To start IPLM Cache automatically after reboot, run
   chkconfig mdx-backend-redis on
   chkconfig mdx-backend-mongodb on
   chkconfig picache on

6. To upgrade IPLM Cache, typically only <mdx-picache> package needs to be updated
   rpm -Uvh <mdx-picache>

IPLM PiForce Installation

Perforce IPLM PiForce server is installed as standard Linux package using the 'zypper' command.

1. Install IPLM PiForce package
   zypper in -y mdx-piforce

2. Review/update IPLM PiForce configuration file
   vi /etc/mdx/piforce.yml
   Note: Please make sure that there's a space after the configuration name(and colon) and before its value, and the value is on the same line of the configuration name. For example, "uri: p4java://localhost:1666"   Note: When using p4javassl in the uri, run the following commands to trust the server fingerprint,
          su - mdxadmin
          p4 -p ssl:<p4 server host>:<p4 server port> trust
3. Start/stop IPLM PiForce daemon
   service piforce start
   service piforce status
   service piforce stop
4. To start IPLM PiForce automatically after reboot, run
   chkconfig piforce on

IPLM PiForceUpgrade

Update IPLM PiForce on system that has IPLM PiForce installed already
1. As root, run:
   zypper up -y mdx-piforce

IPLM PiForce Manual Install

1. Browse on https://mdx.jfrog.io/mdx/yum/production/Pi/sles/x86_64/ and download,
   <mdx-piforce>  
**Transfer the package to the target machine**
  
2. On the target machine install the mdx-piforce package.
   rpm -i <mdx-piforce>   service piforce start

3. To start IPLM PiForce automatically after reboot, run
   chkconfig piforce on

4. To upgrade IPLM PiForce,
   rpm -Uvh <mdx-piforce>