ControlTier > controltier-elements
 

ClientInstaller

client installer module

Overview

Open in Workbench ClientInstaller: client installer module

Intent

  • Automates the installation of a ControlTier Client and bootstraps the client into the current project. Features automated install of the ControlTier Installer (client mode) and dependent Java Package.
  • Support additional configurations for installation on a Cygwin/Win32 based client.

Problem

Provides an automation solution for the ControlTier client installation which can then be exposed at the Jobcenter level. This should provide an automation solution for users who may lack the knowledge of a ControlTier installation and/or have the responsibility for many installations within a captured process.

Discussion

This module is somewhat atypical of a normal ControlTier Deployment in that we are bootstrapping a ControlTier client into a project. However, the concept of a Deployment holds in that we are provisioning an entity (the ctier framework instance for the Node) with package dependencies (ControlTier Installer and Java). A "Separation of Concerns" should be considered here prior to automating this process. Many organizations, depending on policy and available resources, may automate this process within a Systems Operations provisioning solution such as Puppet. Consider implemenation of this specific process as an alternative to a larger scoped provising solution.

Design

Super Type
Deployment
Role Concrete. (Objects can be created.)
Instance Names Unique
Notification false
Template Directory
Data View Children, proximity: 1
Logger Name ClientInstaller

Constraints

Allowed Child Dependencies

  • ClientInstallerCygwinClient 1

    allowed setting dependency to override behavior to apply cygwin related configuration, see attribute-defaults.

  • ClientInstallerTargetCTierRoot 1

    allowed setting dependency, to override the target CTIER_ROOT, see attribute-defaults.

  • ClientInstallerTargetUser 1

    allowed setting dependency, to override the target user, see attribute-defaults.

  • ClientInstallerTrustClient 1

    allowed setting dependency, if settingValue set to true, will blindly trust remote clients over ssh, see attribute-defaults.

  • CTierInstallerZip 1

    allowed package dependency, to specify controltier installer package

  • JavaBin 1

    allowed package dependency, to specify dependent unix based java package

  • JavaZip 1

    allowed package dependency, to specify dependent windows based java package

1: These types have a Singleton constraint. Only one instance may be added as a resource.

Attributes

Defaults for Imported Attributes

Name Default Description
cygwinClient false sets cygwinClient to false and assumes a traditional unix client
targetCTierRoot ctier sets remote CTIER_ROOT as the "ctier" subdirectory of the remote user's $HOME
targetUser ${user.name} sets remote target user to the local username as a reasonable default username
trustClient false sets trustClient to false to default to normal ssh behavior regarding trusting remote clients on the network

Commands

Note
Commandline options displayed in square brackets "[]" are optional. If an option expects arguments, then angle brackets are shown after the option "<>". Any default value is shown within the brackets.

Deploy

automates installation and project configuration for a new controltier client

Executes the Deployment workflow for the ControlTier client installation. The behavior of the Deploy depends on configured attributes and/or supplied parameters. ControlTier implements a convention where it may prepend the username in the name of the Node object. This is to distinguish multiple ControlTier clients that may reside on the same machine where only the user differs. This will prevent this object from "colliding" between different client installs. The following behavior is noted:

If targetUser (established by default or explicit parameter) is the same user as the local user, the name of resulting Node object will be the name of the targetHostname. This is consistent with how ssh works in that the remote user is assumed to be the same as the local user.

If targetUser differs from the local user, the name of resulting Node object will have the "<targetUser>." prefixed to the targetHostname.

Usage
Deploy [-cygwinClient <>] -targetHostname <> [-targetUser <>]

Workflow

  1. configureClient

Options

Option Description
cygwinClient optional, defaults to false, indicating target host is a cygwin client

cygwinClient parameter defaults to the cygwinClient attribute if set, see ClientInstallerCygwinClient type

targetHostname required, client target hostname
targetUser optional, client target user overrides local or configured user

targetUser parameter defaults to the targetUser attribute if set, see ClientInstallerTargetUser type

configureClient

configure a new controltier client

Concrete implementation and is meant to be called by the Deploy workflow command.

Usage
configureClient [-cygwinClient <>] [-frameworkServerHostname <>] [-frameworkServerPassword <>] [-frameworkServerPort <>] [-frameworkServerUsername <>] [-reportcenterPort <>] -targetCTierRoot <> -targetHostname <> [-targetUser <>] [-trustClient <false>]

Options

Option Description
cygwinClient configure cygwin client
frameworkServerHostname framework server hostname

defaults to the framework server hostname

frameworkServerPassword framework password

defaults to the framework server password

frameworkServerPort framework server port

defaults to the framework server port

frameworkServerUsername framework username

defaults to the framework server username

reportcenterPort reportcenter port

defaults to the reportcenter port

targetCTierRoot client target CTIER_ROOT
targetHostname client target hostname
targetUser client target user
trustClient trust remote clients when remotely executing

Related Types

The following types are defined for use with ClientInstaller.

ClientInstallerTargetUser

Overview

Open in Workbench ClientInstallerTargetUser: client installer target user

Design

Super Type
DeploymentSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property Description
targetUser settingValue Identifies the target user for the installed ControlTier client

ClientInstallerTrustClient

Overview

Open in Workbench ClientInstallerTrustClient: trust remote ssh execution when trying to install on remote client

Design

Super Type
DeploymentSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property Description
trustClient settingValue If true, will override the ssh host key protection by ignoring whether remote client is present in the local ssh known hosts file

ClientInstallerTargetCTierRoot

Overview

Open in Workbench ClientInstallerTargetCTierRoot: target CTIER_ROOT

Design

Super Type
DeploymentSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property Description
targetCTierRoot settingValue relative or absolute path name of the CTIER_ROOT for the installed client. By default, ControlTier client is installed into "ctier" subdirectory of the remote user's $HOME

ClientInstallerCygwinClient

Overview

Open in Workbench ClientInstallerCygwinClient: client installer target user

Design

Super Type
DeploymentSetting
Role Concrete. (Objects can be created.)
Instance Names Unique

Attributes

Exported Attributes
Name Property Description
cygwinClient settingValue If true, will override the assumption of a native unix client and will establish configuration suitable for a cygwin ControlTier client