ClientInstaller
client installer module
Overview
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
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
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
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
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
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
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 |