diff --git a/Deploy/prepare.py b/Deploy/prepare.py index 5571e3c20..330c5591a 100755 --- a/Deploy/prepare.py +++ b/Deploy/prepare.py @@ -22,19 +22,25 @@ conf.seek(0, os.SEEK_SET) rcp = ConfigParser.RawConfigParser() rcp.readfp(conf) -hostname = rcp.get("configuration", "hostname") -ui_url = rcp.get("configuration", "ui_url_protocol") + "://" + hostname -email_server = rcp.get("configuration", "email_server") -email_server_port = rcp.get("configuration", "email_server_port") -email_username = rcp.get("configuration", "email_username") -email_password = rcp.get("configuration", "email_password") -email_from = rcp.get("configuration", "email_from") -harbor_admin_password = rcp.get("configuration", "harbor_admin_password") -auth_mode = rcp.get("configuration", "auth_mode") -ldap_url = rcp.get("configuration", "ldap_url") -ldap_basedn = rcp.get("configuration", "ldap_basedn") -db_password = rcp.get("configuration", "db_password") -self_registration = rcp.get("configuration", "self_registration") +hostname = rcp.get("configuration", "hostname").strip('"') +ui_url = rcp.get("configuration", "ui_url_protocol").strip('"') + "://" + hostname +email_server = rcp.get("configuration", "email_server").strip('"') +email_server_port = rcp.get("configuration", "email_server_port").strip('"') +email_username = rcp.get("configuration", "email_username").strip('"') +email_password = rcp.get("configuration", "email_password").strip('"') +email_from = rcp.get("configuration", "email_from").strip('"') +harbor_admin_password = rcp.get("configuration", "harbor_admin_password").strip('"') +auth_mode = rcp.get("configuration", "auth_mode").strip('"') +ldap_url = rcp.get("configuration", "ldap_url").strip('"') +ldap_basedn = rcp.get("configuration", "ldap_basedn").strip('"') +db_password = rcp.get("configuration", "db_password").strip('"') +self_registration = rcp.get("configuration", "self_registration").strip('"') +customize_token = rcp.get("configuration", "customize_token").strip('"') +crt_countryname = rcp.get("configuration", "crt_countryname").strip('"') +crt_state = rcp.get("configuration", "crt_state").strip('"') +crt_name = rcp.get("configuration", "crt_name").strip('"') +crt_organizationname = rcp.get("configuration", "crt_organizationname").strip('"') +crt_organizationalunitname = rcp.get("configuration", "crt_organizationalunitname").strip('"') ######## base_dir = os.path.dirname(__file__) @@ -51,7 +57,7 @@ if not os.path.exists(db_config_dir): os.makedirs(os.path.join(config_dir, "db")) def render(src, dest, **kw): - t = Template(open(src, 'r').read()) + t = Template(open(src, 'r').read().strip('echo').strip().strip('"')) with open(dest, 'w') as f: f.write(t.substitute(**kw)) print("Generated configuration file: %s" % dest) @@ -62,10 +68,12 @@ registry_conf = os.path.join(config_dir, "registry", "config.yml") db_conf_env = os.path.join(config_dir, "db", "env") conf_files = [ ui_conf, ui_conf_env, registry_conf, db_conf_env ] -for f in conf_files: - if os.path.exists(f): - print("Clearing the configuration file: %s" % f) - os.remove(f) +def rmdir(cf): + for f in cf: + if os.path.exists(f): + print("Clearing the configuration file: %s" % f) + os.remove(f) +rmdir(conf_files) render(os.path.join(templates_dir, "ui", "env"), ui_conf_env, @@ -73,7 +81,7 @@ render(os.path.join(templates_dir, "ui", "env"), db_password=db_password, ui_url=ui_url, auth_mode=auth_mode, - admin_pwd=harbor_admin_password, + harbor_admin_password=harbor_admin_password, ldap_url=ldap_url, ldap_basedn=ldap_basedn, self_registration=self_registration) @@ -82,8 +90,8 @@ render(os.path.join(templates_dir, "ui", "app.conf"), ui_conf, email_server=email_server, email_server_port=email_server_port, - email_user_name=email_username, - email_user_password=email_password, + email_username=email_username, + email_password=email_password, email_from=email_from, ui_url=ui_url) @@ -95,4 +103,32 @@ render(os.path.join(templates_dir, "db", "env"), db_conf_env, db_password=db_password) +if customize_token == 'on': + is_fail = 0 + private_key_gem = os.path.join(config_dir, "ui", "private_key.pem") + root_crt = os.path.join(config_dir, "registry", "root.crt") + token_conf_files = [ private_key_gem, root_crt ] + rmdir(token_conf_files) + import subprocess + shell_status = subprocess.call(["openssl", "genrsa", "-out", private_key_gem, "4096"]) + if shell_status == 0: + print("private_key.gem has been generated in %s/ui" % config_dir) + else: + print("gennerate private_key.gem fail.") + is_fail = 1 + subj = "/C={0}/ST={1}/L={2}/O={3}/OU={4}"\ + .format(crt_countryname, crt_state, crt_name, crt_organizationname, crt_organizationalunitname) + shell_status = subprocess.call(["openssl", "req", "-new", "-x509", "-key",\ + private_key_gem, "-out", root_crt, "-days", "3650", "-subj", subj]) + if shell_status == 0: + print("root.crt has been generated in %s/registry" % config_dir) + else: + print("gennerate root.crt fail.") + is_fail = 1 +try: + if is_fail == 1: + print("some problem occurs.") + sys.exit(1) +except Exception as e: + pass print("The configuration files are ready, please use docker-compose to start the service.") diff --git a/Deploy/prepare b/Deploy/prepare.sh similarity index 100% rename from Deploy/prepare rename to Deploy/prepare.sh