Plan your installation/upgrade

Plan your installation or upgrade setup, hardware and software requirements and so on before you begin..

TeamForge Services

Before you plan your installation or upgrade, let us understand TeamForge and its services.

TeamForge site consists of a core TeamForge application and several tightly integrated services that support it. In addition, you can integrate TeamForge with other third party applications such as Nexus, Jenkins, Jira and so on. Some of the TeamForge services are mandator and some are optional. You can install the services, all in one single server, or distribute them across two or more servers.

Service Name and site-options.conf syntax changes

The names of some of the TeamForge services have been renamed in TeamForge 17.1. In addition, the site-options.conf syntaxes for defining the TeamForge services running on a host (host:SERVICES token) and TeamForge domain name (host:PUBLIC_FQDN token) have been changed in TeamForge 17.1.

Unless otherwise notified, to ensure backward compatibility, TeamForge 17.1 and later versions support both old and new syntaxes for defining your host and domain tokens. Similarly, TeamForge 17.8 supports both old and new service names. However, it is recommended to adjust your site-options.conf in line with these changes as support for older syntax and naming convention would be dropped in due course.

Here's a list of available TeamForge services.

Services Mandatory/Optional Old Name Description
ctfcore Mandatory app Main TeamForge application server
search Mandatory indexer Indexing and Searching
mail Mandatory NA Email server
ctfcore-database Mandatory database Operational database
codesearch Mandatory codesearch Code Search
etl Optional etl ETL for Datamart
ctfcore-datamart Mandatory if and only if you install etl datamart Datamart database
subversion Optional subversion SVN Version Control
cvs Optional cvs CVS Version Control
gerrit Optional gerrit Git/Gerrit Version Control
gerrit-database Mandatory if and if only if you install gerrit NA Database for Git/Gerrit. In a distributed setup, add this identifier on the server where you want to run Gerrit database.
gerrit-database-performance Automatically installed if you install gerrit NA It is a second database that Gerrit uses to cache data.
binary Optional Optional Artifact repository integration
binary-database Mandatory if and only if you install binary binary Database for artifact repository integration. Binary app (binary) and database (binary-database) have to installed on the same server.
reviewboard Optional reviewboard Review Board code review tool
reviewboard-database Mandatory if and only if you install reviewboard NA Database for Review Board. In a distribute setup, add this identifier on the server where you want to run Review Board database.
reviewboard-adapter Mandatory if and only if you install reviewboard NA Adapter for Review Board. In a distribute setup, reviewboard-adapter must always be installed on the TeamForge Application Server.
eventq Mandatory NA EventQ application server. In a distributed setup, add this identifier on the server where you want to run EventQ application.
redis Mandatory NA EventQ in-memory database/data structure server. In a distributed setup, add this identifier on the server where you want to run EventQ application.
mongodb Mandatory NA EventQ database server. In a distributed setup, add this identifier on the server where you want to run EventQ database.
rabbimq Mandatory NA EventQ AMQP message server. In a distributed setup, add this identifier on the server where you want to run EventQ message queue.
These service identifiers are used in the site-options.conf file’s host:SERVICES token.

Single Server or Distributed Setup?

If you are installing TeamForge, are you planning to install on a single server or distribute TeamForge services across two or more servers? How are you going to distribute the services?

In the default setup, all services run on the same server as the main TeamForge application. But in practice, only the TeamForge application needs to run on the TeamForge application server. The other services can share that server or run on other servers, in almost any combination.

Assess your own site’s particular use patterns and resources to decide how to distribute your services, if at all. For example, if you anticipate heavy use of your site, you will want to consider running the site database, the source control service, or the reporting engine on separate hardware to help balance the load.

When you distribute your services on multiple servers, you must do some configuration to handle communication among the services. Verify your basic networking setup. See Set up Networking for TeamForge.

PostgreSQL or Oracle?

PostgreSQL 9.6.3 is installed automatically when you install TeamForge 17.8. If you intend to use Oracle, CollabNet recommends that you let the installer run its course, make sure things work normally, and then set up your Oracle database and switch over to it.

If you want to use Oracle as your database, consider the following points:
  • TeamForge17.8 supports Oracle server 12c and Oracle client .
  • Oracle express edition is not supported for both client and server.
  • Review Board 2.5.6.1 was tested with PostgreSQL 9.6.3 only. Review Board with Oracle was not tested. Note that Review Board (application) must be installed on the TeamForge application server and therefore uses the PostgreSQL database that is installed by default during TeamForge installation. However, Review Board database can be installed on a separate server.
  • GIT integration works only with PostgreSQL. The Git integration will use PostgreSQL even if your TeamForge site uses Oracle.

The efficiency of your database can have an impact on your users' perception of the site's usability. If your site uses a PostgreSQL database (which is the default), you may want to consider tuning it to fit your specific circumstances. The default settings are intended for a small-to-medium site running on a single server. See What are the right PostgreSQL settings for my site? for recommendations from CollabNet's performance team on optimizing PostgreSQL for different conditions.

Integrations

TeamForge supports integration with a wide array of third party applications such as Review Board, Git, Nexus, Jira and so on. As a customer you may or may not always want (or have) all of TeamForge's supported integrated applications. It's also quite possible that some of the integrated applications may not always run on all the platforms supported by TeamForge.

To accommodate a wider audience, by default, TeamForge install and upgrade instructions include steps to integrate such third party applications with TeamForge. However, use your discretion to ignore and skip such steps if they are not relevant to your site. See TeamForge installation requirements to understand what it takes to run TeamForge 17.8 with integrations.

One-hop upgrade compatibility

Though the TeamForge17.8 installer supports one-hop upgrade from TeamForge 16.3 or later versions, TeamForge 17.8 upgrade instructions, in general, are for upgrading from TeamForge 17.4 (including update releases, if any) to TeamForge17.8.

During an upgrade, the TeamForge 17.8 migration script detects the TeamForge version you run, checks if it's TeamForge 16.3 or later, and if 'true', proceeds with the data migration.

The migration script aborts with an error message if it detects TeamForge 7.2 or earlier versions. You must upgrade your site to TeamForge 16.3 or later and then upgrade to TeamForge 17.8.

Hardware and Backup

If you aren't the person who first installed your current TeamForge site (or maybe, even if you are), it's essential to catalog the hosts where your services are running and to know what configuration has been applied to them.

While upgrading to a latest TeamForge version, you can shoose to upgrade on the same hardware or on new hardware. In general, it is good to have a backup plan in place. Same hardware upgrades need no backup. However, it’s recommended to take a back up as a measure of caution. See Backup and Restore TeamForge and EventQ for more information.

Other Dos and Don'ts

Here’s a list of dos, don’ts and points to remember when you install or upgrade TeamForge.
  • Understand TeamForge installation requirements.
  • Get your TeamForge license key and keep it handy.
  • Installing or upgrading TeamForge needs root privileges. You must log on as root or use a root shell to install or upgrade TeamForge.
  • Verify your basic networking setup before installing or upgrading TeamForge. See Set up Networking for TeamForge.
  • SSL is enabled by default and a self-signed certificate is auto-generated. However, you can use a few site-options.conf tokens to adjust this behavior. To generate the SSL certificates, see Generate SSL certificates.
  • Do not customize your operating system installation. Select only the default packages list.
  • You need to add the SSL certificate to the Java keystore if the site uses a self-signed certificate. For instructions on adding the self-signed certificate to the Java keystore, see Protect Integrations with SSL.
  • For the ETL service to run as expected in a distributed TeamForge installation, all servers must have the same time zone.
  • If you have Git integration on a separate server, both TeamForge and Git servers must have their time and date synchronized.
  • While you can run both EventQ and TeamForge on the same server, CollabNet recommends such an approach only for testing purposes. It’s always recommended to run EventQ on a separate server for optimal scalability.
  • Look for new or modified site-options.conf tokens and update your site-options.conf file as required during the upgrade process. See Site Options Change Log.
  • Do not manually modify TeamForge-managed site option tokens such as the AUTO_DATA token. See . for more information.
  • No backup is required for same hardware upgrades. However, you can create a backup as a precaution. See Backup and Restore TeamForge and EventQ for more information.
  • Always use compatible JDBC drivers meant for specific database versions. See JDBC Drivers Reference for more information. Also see: Why do ETL jobs fail post TeamForge upgrade?
  • You can run the initial load job any time after the installation of TeamForge. We recommend that you run it before you hand over the site to the users. For more information, see When do I run the initial load job?
  • Set up a TeamForge Stage Server before you upgrade your Production Server.
  • Stop TeamForge services on all servers in a distributed setup while upgrading to TeamForge 17.8.
  • If installed, stop DevOps Lifecycle Manager (DLM) services too while upgrading to TeamForge 17.8:
    • systemctl stop actionhubserver
    • systemctl stop actionhubdaemon
  • Uninstall hot fixes and add-ons, if any, before you start the TeamForge 17.8 upgrade procedure.
  • SOAP50 APIs and event handlers are no longer supported in TeamForge 17.1and later. Use the latest TeamForge SOAP/REST APIs.

What's new in TeamForge 17.8 install / upgrade

  • Changes to supported software versions
    • JRE 1.8.0_131
    • PostgreSQL 9.6.3
    • Subversion 1.8.18
    • Tomcat 8.0.44
    • RHEL/CentOS 6.9
  • post-install.py

    The post-install.py script is no longer available. It's not required to run the post-install.py script during TeamForge install/upgrade as its functions have been moved into /opt/collabnet/teamforge/bin/teamforge script's "deploy", "migrate", "bootstrap" and "initialize" hooks.

  • Gerrit database performance

    A new service, gerrit-database-performance, has been added in TeamForge 17.8-Git integration. This is installed by default with the gerrit-database. It is a second database that gerrit used to cache certain data for better database performance.

  • SELinux

    The teamforge script now takes care of switching SELinux to "permissive" mode during install or upgrade and switches back to its original mode once the install or upgrade is complete.

    TeamForge implements SELinux policies for most of its services such as JBoss, Apache, ETL, Tomcat and so on. However, you can revert these policies (not recommended), if required. For more information, see TeamForge SELinux policies.

  • JAMES_ACCEPTED_RELAYS

    SMTP authentication has been enabled for relays and as a result the JAMES_ACCESPTED_RELAYS token is no longer supported. Remove this token from the site-options.conf file while upgrading to TeamForge 17.8.

  • teamforge script
    • Starting from TeamForge 17.8, /opt/collabnet/teamforge/bin/teamforge has been linked to /usr/bin and therefore you can simply run the teamforge script from any path.
    • The teamforge provision command no longer prompts for a response before it bootstraps (during fresh TeamForge installation) or migrates (during TeamForge upgrades) data. In addition, there's no default answer configured with such prompts for user response. You must type either "y" or "N" to proceed.
    • The fix_data_permissions.sh script has been deprecated. You must use the teamforge apply-permissions command instead.
  • Restart the integration service post upgrade to TeamForge 17.8
    If you are installing TeamForge on CentOS 6.9 with SELinux in "enforcing" mode and if you have CVS integration, you must restart the integration service after provisioning the services (teamforge provision).
    • teamforge restart -s integration
  • Reset the PASSWORD_CONTROL_EFFECTIVE_DATE token while upgrading to TeamForge 17.8

    Reset the PASSWORD_CONTROL_EFFECTIVE_DATE token. If not reset, the Password Control Kit (PCK) disables, deletes or expires user accounts immediately. You must pick a future date and set it to this token. For example, you can use the following logic and pick a future date: PASSWORD_CONTROL_EFFECTIVE_DATE=<the day on which TeamForge upgrade is done> + PASSWORD_WARNING_PERIOD.

  • host:SERVICES token validation

    You cannot use an IP address in the host:SERVICES token (such as 1.2.3.4:SERVICES=). teamforge provision fails if an IP address is used.