RPM installer
From ControlTier
Requires Version: 3.4.9
Installs the ControlTier server and client software. The RPM installer (client-only) page contains instructions for installing just the client software via RPM distribution.
Contents |
Prerequisites
ControlTier requires Java version 1.5 or greater. Java installations based on OpenJDK distributions have been verified. (See RPM Java detection.)
You can install the OpenJDK with Yum using:
yum install java-1.6.0-openjdk
For the ctier-server rpm, you must also install the development package:
yum install java-1.6.0-openjdk-devel
Other system download instructions can be found here: http://openjdk.java.net/install
By the way, if you are using Yum, then consult the Graphviz documentation for instructions on adding their repository and installing the Graphviz RPMs.
Server&client install
If you want to install the full ControlTier Server (which also includes all components of a client installation), use the "ctier-server" RPM file.
Installation instructions
Download the ctier-server-3.4.9-1.noarch.rpm file.
Run the following command as root, which will install the controltier server and client into the /opt/ctier, by default:
[root@centos54 tmp]# rpm -ivh ctier-server-3.4.9-1.noarch.rpm Preparing... ########################################### [100%] 1:ctier-server ########################################### [100%] patching file /etc/rc.d/init.d/ctier Starting Jetty: STARTED Jetty Thu Nov 19 09:12:37 PST 2009 2009-11-19 09:12:38.939::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2009-11-19 09:12:39.111::INFO: Redirecting stderr/stdout to /opt/ctier/pkgs/jetty-6.1.14/logs/2009_11_19.stderrout.log
You can specify another location at install time by using the --prefix option (since the RPM is relocatable):
rpm -ivh --prefix /usr/local/ctier ctier-server-3.4.9-1.noarch.rpm
The value you specify for the prefix, or the default value of /opt/ctier, is considered the "CTIER_ROOT" path.
A file named "$CTIER_ROOT/etc/ctierrc" is created as part of the installation process. This file is the equivalent of the ".ctierrc" file generated during the normal CLI or GUI installation.
This file will declare the environment necessary to run the ControlTier server, as well as all ControlTier client commands. Notice that when the "ctier-server" rpm is installed, the value of "CTL_BASE" is already set in the ctierrc file:
CTL_BASE=/opt/ctier/ctl
The ControlTier Server installation contains a complete ControlTier Client installation, along with a valid CTL_BASE installation. This instance of CTL_BASE is used by the ControlTier Jobcenter tool and is the "common" client installation shareable by any "ctier" group member.
Note that the server is configured as an "init" service and automatically started (on port default port 8080 using your system's node name as the server host name) as part of server RPM installation.
Just point your browser to http://myhost.mydomain:8080 to access the server after installation. See the usage section for direction on managing the server and using Ctl with the common installation.
Reconfiguration
By default the server is installed with these pertinent configuration values:
- Server hostname
- value of the
hostnamecommand.
- Server node name
- value of the
hostnamecommand.
- Server port
- default
8080
These values can be changed, but require running the "server-setup.sh" script. Make sure the server is stopped prior to executing this script.
The setup script takes a properties file as input, and you can also override specific property values on the commandline using the -Dname=value construction.
The default.properties file is the same format as the one used with the normal script based CLI installer. When you install the server rpm, a copy of this file is placed in: $CTIER_ROOT/pkgs/configure/default.properties. You can either duplicate this file and modify it, or you can simply use it as the basis for the setup, and override selected properties on the commandline.
For example, to override only the port used by the server, execute:
$ server-setup.sh -f $CTIER_ROOT/pkgs/configure/default.properties -d $CTIER_ROOT \ -Dserver.jetty.port=9090
Or to change only the server hostname:
$ server-setup.sh -f $CTIER_ROOT/pkgs/configure/default.properties -d $CTIER_ROOT \ -Dserver.hostname=myserver
Refer to the "$CTIER_ROOT/pkgs/configure/default.properties" file for further configuration properties.
| Make sure that the server is stopped prior to running this command. |
Client-only installation
Using the client
On installation and setup, a common profile called "/opt/ctier/etc/ctierrc" is created. (This file is the equivalent of the ".ctierrc" file generated during the normal CLI or GUI installation).
The profile declares the environment necessary to run the ControlTier client commands. You can see that the CTL_HOME value is set to: "/opt/ctier/pkgs/ctl-1.4.9" in this instance:
export CTIER_ROOT=/opt/ctier export CTL_HOME=/opt/ctier/pkgs/ctl-1.4.9 if [ -z "$CTL_BASE" ] ; then export CTL_BASE=/opt/ctier/ctl fi export PATH=$CTL_HOME/bin:$PATH if [ -n "$BASH" -a -n "$CTL_BASE" ] ; then . $CTL_HOME/etc/bash_completion.sh ; if [ -t 0 -a -z "$CTL_CLI_TERSE" ] then CTL_CLI_TERSE=true export CTL_CLI_TERSE fi fi
This file can be sourced from your .bashrc or .bash_profile or equivalent script. The ctier-client provides examples you can use at /opt/ctier/.bashrc and /opt/ctier/.bash_profile.
The included ctierrc file declares CTL_BASE to be "/opt/ctier/ctl". This is the default location for the common CTL_BASE instance.
By introducing a "common" installation of the ControlTier server and client software (under "/opt/ctier"), the RPM-based installation promotes a couple of new modes of using the ControlTier client (Ctl):
Common CTL_BASE
While the common installation complies with the long-established self-contained directory convention (i.e. with CTIER_ROOT=/opt/ctier), it is not expected that the ctier user created by the RPMs will be used as a login account. In fact, the account is explicitly locked with no password set, by the RPMs.
The easiest approach, configured out-of-the-box, is to share the common CTL_BASE amongst ctier group members:
- Add the user(s) accounts you wish to be able to use Ctl to the ctier group:
[anthony@centos54 AtgJBossModuleBuilder]$ id uid=503(anthony) gid=503(anthony) groups=10(wheel),103(ctier),503(anthony) context=user_u:system_r:unconfined_t
- Source the common ctierrc from the users' .bashrc file as follows:
[anthony@centos54 ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
if [ -f /opt/ctier/etc/ctierrc ]; then
. /opt/ctier/etc/ctierrc
else
echo /opt/ctier/etc/ctierrc not found 1>&2
fi
- Create one or more project depots (note that the depot is created under the common CTL_BASE):
[anthony@centos54 ~]$ ctl-depot -p Development -a create Project depot structure created: /opt/ctier/ctl/depots/Development Invoking external setup script: /opt/ctier/pkgs/ctl-1.4.9/bin/commander-depotsetup.xml Beginning client setup ... Running CTL depot setup: /opt/ctier/pkgs/ctl-1.4.9/lib/ant/controllers/ctl/depotsetupCmd.xml ... Trying to override old definition of task document-property CTL depot setup procedure completed. Beginning node registration ... Workbench client host "centos54[Node]" already registered, updating... Completed client setup. Node centos54 registered in project: "Development".
Note that all the necessary file and directory permissions have been setup to allow ctier group members to share the common CTL_BASE. This means that all such users share a single set of depots and that hence there is a shared set of projects in the common Workbench instance.
Here are some suggestions for organizing how a group of ctier group members might collaborate in this shared common setup:
- Each user sticks to their own projects and hence controls their own depots.
- Users share projects and pay attention to setting key object attributes (such as the installation and base directory properties) to either promote separation (e.g. by including the "${user.home}" property) or integration (by using shared locations) of their work.
| Using the common CTL_BASE is the only way to configure jobs for execution from the common Jobcenter instance configured as part of the server RPM installation. |
Note that to enable password-less remote command dispatching when using the common CTL_BASE on the server in a multi-box environment, you'll need to generate a DSA key-pair as the "ctier" user to match the configured value of "framework.ssh.keypath" ("/opt/ctier/.ssh/id_dsa"):
[root@centos54 ~]# su - ctier [ctier@centos54 ~]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/opt/ctier/.ssh/id_dsa): Created directory '/opt/ctier/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /opt/ctier/.ssh/id_dsa. Your public key has been saved in /opt/ctier/.ssh/id_dsa.pub. The key fingerprint is: e2:85:45:1f:c3:b7:2d:66:30:9a:cb:81:36:a5:ee:32 ctier@centos54
... use the resultant public key ("/opt/ctier/.ssh/id_dsa.pub") to authorize access to your client systems.
Dedicated CTL_BASE
With the introduction of the ctl-setup command it is possible to configure any number of CTL_BASE directories to work with the common Ctl client software (e.g. CTL_HOME=/opt/ctier/pkgs/ctl-1.4.9) installed by both the server or client RPMs.
This facilitates setting up dedicated CTL_BASEs on a per-user basis on client systems and on the server system (where access to the common Jobcenter installation is not required. e.g. to support project development).
Here's how to put together this setup:
- There's no particular reason why the user account you choose need be in the ctier group since permissions are setup to allow the necessary read access to all accounts.
- Modify the user's .bashrc file to provide access to the common installation after first setting the desired CTL_BASE:
[user1@centos54 ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export CTL_BASE=$HOME/ctier/ctl
if [ -f /opt/ctier/etc/ctierrc ]; then
. /opt/ctier/etc/ctierrc
else
echo /opt/ctier/etc/ctierrc not found 1>&2
fi
- Use ctl-setup to create the dedicated CTL_BASE (note that a distinct node name is required since the new dedicated CTL_BASE is on the same system as the common CTL_BASE):
[user1@centos54 ~]$ ctl-setup -n user1.centos54 -N centos54 -s centos54
Using server hostname: centos54
upgradeModuleLibdirs:
inquire-properties-regenerate:
generate-etc-properties:
[copy] Copying 1 file to /home/user1/ctier/ctl/etc
.
.
.
post-setup:
[echo] Commander extension post-setup completed.
Setup build successful.
- Create one or more project depots (note that the depot is created under the dedicated CTL_BASE):
[user1@centos54 ~]$ ctl-depot -p Development -a create Project depot structure created: /home/user1/ctier/ctl/depots/Development Invoking external setup script: /opt/ctier/pkgs/ctl-1.4.9/bin/commander-depotsetup.xml Beginning client setup ... Running CTL depot setup: /opt/ctier/pkgs/ctl-1.4.9/lib/ant/controllers/ctl/depotsetupCmd.xml ... Trying to override old definition of task document-property CTL depot setup procedure completed. Beginning node registration ... Registering user1.centos54[Node] with ctl.base: /home/user1/ctier/ctl, ctl.home: /opt/ctier/pkgs/ctl-1.4.9 ... Registered node "user1.centos54" with Workbench @ http://centos54:8080/itnav Completed client setup. Node user1.centos54 registered in project: "Development".
Given this setup, work can proceed isolated from the common CTL_BASE, but still using the common Workbench installation and WebDAV repository. The common Jobcenter installation is tied to the common CTL_BASE, however, and cannot access the depots created within the dedicated CTL_BASE.
Note that the dedicated CTL_BASE has its own framework properties, including those relating to SSH-based remote command dispatching:
[user1@centos54 ~]$ fgrep framework.ssh $CTL_BASE/etc/framework.properties framework.ssh.keypath = /home/user1/.ssh/id_dsa framework.ssh.user = user1 framework.ssh.timeout = 0
Appendix
To see if ControlTier is installed run:
rpm -qa |grep ctier ctier-server-3.4.9-1
The example above shows the server package has been installed.
To remove a package use rpm -e packagename
[root@centos54]# rpm -e ctier-server Stopping Jetty: OK . . .
| ||||||||||||||

