diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-12-18 14:46:41 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2013-01-29 17:24:58 -0500 |
commit | 53b6f1d1dabff720c68eb7615830476b97f973cc (patch) | |
tree | beab24e89cde7d2a3337cf9e311add33ed689256 /base/deploy/src/pkispawn | |
parent | a076bc976666f1713b3f2e3982f4700b88397e74 (diff) | |
download | pki-ticket-380-7.tar.gz pki-ticket-380-7.tar.xz pki-ticket-380-7.zip |
Added interactive subsystem installation.ticket-380-7
The pkispawn has been modified such that the configuration file
and subsystem type are optional. The pkidestroy has been modified
such that the instance name and subsystem type are optional.
If any of these options are not specified they will enter an
interactive mode.
Ticket #380
Diffstat (limited to 'base/deploy/src/pkispawn')
-rwxr-xr-x | base/deploy/src/pkispawn | 122 |
1 files changed, 104 insertions, 18 deletions
diff --git a/base/deploy/src/pkispawn b/base/deploy/src/pkispawn index f64d79575..3877f5a48 100755 --- a/base/deploy/src/pkispawn +++ b/base/deploy/src/pkispawn @@ -1,4 +1,4 @@ -#!/usr/bin/python -t +#!/usr/bin/python -tu # Authors: # Matthew Harmsen <mharmsen@redhat.com> # @@ -52,6 +52,10 @@ error was: def main(argv): "main entry point" + print "PKI Server Installation" + print "-----------------------" + print + config.pki_deployment_executable = os.path.basename(argv[0]) # Only run this program as "root". @@ -96,7 +100,7 @@ def main(argv): parser.mandatory.add_argument('-f', dest='user_deployment_cfg', action='store', - nargs=1, required=True, metavar='<file>', + nargs=1, metavar='<file>', help='configuration filename ' '(MUST specify complete path)') @@ -106,15 +110,107 @@ def main(argv): args = parser.process_command_line_arguments(argv) + interactive = False config.default_deployment_cfg = config.PKI_DEPLOYMENT_DEFAULT_CONFIGURATION_FILE # -f <user deployment config> - config.user_deployment_cfg = str(args.user_deployment_cfg).strip('[\']') + if not args.user_deployment_cfg is None: + config.user_deployment_cfg = str(args.user_deployment_cfg).strip('[\']') # -u config.pki_update_flag = args.pki_update_flag - parser.validate() + parser.initialize() + + while True: + + # -s <subsystem> + if args.pki_subsystem is None: + interactive = True + config.pki_subsystem = parser.read_text('Subsystem (CA/KRA/OCSP/TKS)', + options=['CA', 'KRA', 'OCSP', 'TKS'], + default='CA', caseSensitive=False).upper() + print + else: + config.pki_subsystem = str(args.pki_subsystem).strip('[\']') + + parser.initialize_config() + + if config.user_deployment_cfg is None: + interactive = True + + print "Tomcat:" + parser.read_text('Instance', 'DEFAULT', 'pki_instance_name', indent=2) + parser.read_text('HTTP port', config.pki_subsystem, 'pki_http_port', indent=2) + parser.read_text('Secure HTTP port', config.pki_subsystem, 'pki_https_port', indent=2) + parser.read_text('AJP port', config.pki_subsystem, 'pki_ajp_port', indent=2) + parser.read_text('Management port', config.pki_subsystem, 'pki_tomcat_server_port', indent=2) + print + + print "Administrator:" + parser.read_text('Username', config.pki_subsystem, 'pki_admin_uid', indent=2) + + admin_password = parser.read_password( + 'Password', config.pki_subsystem, 'pki_admin_password', + verifyMessage='Verify password', indent=2) + + parser.set_property(config.pki_subsystem, 'pki_backup_password', admin_password) + parser.set_property(config.pki_subsystem, 'pki_client_database_password', admin_password) + parser.set_property(config.pki_subsystem, 'pki_client_pkcs12_password', admin_password) + + if config.pki_master_dict['pki_import_admin_cert'] == 'True': + import_cert = 'Y' + else: + import_cert = 'N' + + import_cert = parser.read_text('Import certificate (Yes/No)', + default=import_cert, options=['Yes', 'Y', 'No', 'N'], + sign='?', caseSensitive=False, indent=2).lower() + + if import_cert == 'y' or import_cert == 'yes': + parser.set_property(config.pki_subsystem, 'pki_import_admin_cert', 'True') + parser.read_text('Import certificate from', config.pki_subsystem, 'pki_admin_cert_file', indent=2) + else: + parser.set_property(config.pki_subsystem, 'pki_import_admin_cert', 'False') + + parser.read_text('Export certificate to', config.pki_subsystem, 'pki_client_admin_cert', indent=2) + print + + print "Directory Server:" + parser.read_text('Hostname', config.pki_subsystem, 'pki_ds_hostname', indent=2) + parser.read_text('Port', config.pki_subsystem, 'pki_ds_ldap_port', indent=2) + parser.read_text('Base DN', config.pki_subsystem, 'pki_ds_base_dn', indent=2) + parser.read_text('Bind DN', config.pki_subsystem, 'pki_ds_bind_dn', indent=2) + parser.read_password( + 'Password', config.pki_subsystem, 'pki_ds_password', + verifyMessage='Verify password', indent=2) + print + + print "Security Domain:" + parser.read_text('Name', config.pki_subsystem, 'pki_security_domain_name', indent=2) + + if config.pki_subsystem != "CA": + parser.read_text('Hostname', config.pki_subsystem, 'pki_security_domain_hostname', indent=2) + parser.read_text('Secure HTTP port', config.pki_subsystem, 'pki_security_domain_https_port', indent=2) + parser.read_text('Username', config.pki_subsystem, 'pki_security_domain_user', indent=2) + parser.read_password( + 'Password', config.pki_subsystem, 'pki_security_domain_password', + verifyMessage='Verify password', indent=2) + + print + + if interactive: + begin = parser.read_text('Begin installation (Yes/No/Quit)', + options=['Yes', 'Y', 'No', 'N', 'Quit', 'Q'], + sign='?', allowEmpty=False, caseSensitive=False).lower() + print + + if begin == 'q' or begin == 'quit': + print "Installation canceled." + sys.exit(0) + + elif begin == 'y' or begin == 'yes': + break if not os.path.exists(config.PKI_DEPLOYMENT_SOURCE_ROOT +\ "/" + config.pki_subsystem.lower()): @@ -161,20 +257,6 @@ def main(argv): extra=config.PKI_INDENTATION_LEVEL_0) sys.exit(1) - # NEVER print out 'sensitive' name/value pairs!!! - config.pki_log.debug(log.PKI_DICTIONARY_DEFAULT, - extra=config.PKI_INDENTATION_LEVEL_0) - config.pki_log.debug(pkilogging.format(config.pki_default_dict), - extra=config.PKI_INDENTATION_LEVEL_0) - config.pki_log.debug(log.PKI_DICTIONARY_WEB_SERVER, - extra=config.PKI_INDENTATION_LEVEL_0) - config.pki_log.debug(pkilogging.format(config.pki_web_server_dict), - extra=config.PKI_INDENTATION_LEVEL_0) - config.pki_log.debug(log.PKI_DICTIONARY_SUBSYSTEM, - extra=config.PKI_INDENTATION_LEVEL_0) - config.pki_log.debug(pkilogging.format(config.pki_subsystem_dict), - extra=config.PKI_INDENTATION_LEVEL_0) - # Read in the PKI slots configuration file. parser.compose_pki_slots_dictionary() config.pki_log.debug(log.PKI_DICTIONARY_SLOTS, @@ -184,6 +266,7 @@ def main(argv): # Combine the various sectional dictionaries into a PKI master dictionary parser.compose_pki_master_dictionary() + if not config.pki_update_flag: config.pki_master_dict['pki_spawn_log'] = config.pki_log_dir + "/" +\ config.pki_log_name @@ -214,6 +297,9 @@ def main(argv): config.pki_log.debug(pkilogging.format(config.pki_master_dict), extra=config.PKI_INDENTATION_LEVEL_0) + print + print "Installation complete." + # PKI Deployment Entry Point if __name__ == "__main__": |