Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0-incubating
-
None
-
None
Description
Umbrella for evolution of the Trafodion Installer.
Overall motivation is:
- Position Trafodion as a pure Hadoop add-on: the Hadoop environment must
be installed and fully functional before installing Trafodion. - Use as much of the existing function as possible.
- Define distinct phases that fit into common IT practices.
- Enhanced user experience.
Consideration:
IT departments often separate responsibilities such as security administration,
configuration changes, etc. These type of activities need to be planned and
executed during specific maintenance windows. All acivities are audited in
order to be compliant with local regulations; for examle, the
Sarbanes-Oxley Act.
In contrast, the current behavior of the Trafodion Installer, which
assumes that it can obtain configuration information, change Hadoop configuration,
install software packages, set up user IDs, and install/deploy Trafodion in one
session.
The following distinct install phases are defined.
1. Environment validation: Ensure that the environment is suited for Trafodion.
Identify required changes.
The Trafodion Scanner should be able to fulfill this need. The current Scanner
Configuration file is out-of-date so it generates false positives such as
flagging hyper threading, which is now OK.
NOTE: Need to spend more time on the Scanner. The design and implementation
looks quite elegant and robust.
2. Configuration builder: Automated Mode (aka expert mode) uses a documented
configuration file with environmental information to drive the installation.
Guided Mode prompts the user for information creating a comment-free
configuration file.
Change the Guided Mode to be a configuration builder that builds a
fully-commented configuration file. Enhance Guided Mode to do more
discovery using the REST APIs/Hadoop configuration files to obtain
information that the user have to provide today.
The goal here is to reduce user-supplied information to the
absolute minimum: Trafodion user password, target install directory,
tar file, and distribution-manager user and password.
From past experiences, it's possible to automatically detect what type
of Hadoop installation is used, URL to distribution manager or location
of configuration files, and then rely on REST APIs/configuration files
to discover nodes, current settings, and so forth.
All prompts are done in a loop to allow for review/approval of the
input. When completed, the user is shown the overall settings in
a numbered menu thereby allowing for new edits, if needed. Once approved,
the commented configuration file is created thereby allowing the
user to directly edit the file in later upgrades. As today, new
runs of the Installer reads the configuration file for prompt
default values.
It's probably best to implement discovery functions in Python because it
has good handling of REST APIs, reading XML files, and parsing
JSON responses.
3. Configuration changer: Trafodion requires specific system, HDFS,
and HBase settings. These should be implemented BEFORE installing
Trafodion so that the user can a) time the required changes
b) choose to make the changes using an alternative means
c) validate that the changes did not break their Hadoop environment.
Keep today's capability of restarting Hadoop services but don't invoke
configuration change unless required. (Don't do it blindly like today; restarting
Hadoop services is a big deal and should be avoided as much as possible.)
4. User Setup: Create/validate mode to allow for cases where
security administrators must perform user creation.
5. Package Download: Validate/download mode for required packages.
6. Trafodion Install: As today.
7. Activation: As today
trafodion_install adds a set of new arguments to invoke the different
steps per the list above:
No argument displays help text
-a, --automated Run installer in automated mode. Cannot be combined with -b.
-c, --config_file Location of configuration file
-v, --validate Validatation mode. Applies to -s and -p.
-s, --scan Checks the current Hadoop and system environment for Trafodion usage.
-b, --build Guided Mode. Builds --config_file.
-u, --user Creates/validates Trafodion user. -v defines validate mode.
-p, --package Installs/validates required software packages. -v defines validate mode.
-i, --install Installs the Trafodion software.
-a, --activate Starts Trafodion.
Other changes:
- Move installer settings to a separate file that's sourced in. Today, most installer files
defines the settings (in variables) within the file itself. - Support sudo alternates (such as pbrun) via edit of installer-settings file.
- Handle multiple clusters in discovery. Today's code assumes one cluster only when interacting with REST APIs.
Attachments
Issue Links
- links to