#!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # Copies keys that enable SSH communication with system vms # $1 = new public key # $2 = new private key ''' All imports go here... ''' from subprocess import call import socket import sys import os import subprocess import traceback def generateSSLKey(outputPath): logf = open("ssl-keys.log", "w") hostName = socket.gethostbyname(socket.gethostname()) keyFile = outputPath + os.sep + "cloudmanagementserver.keystore" logf.write("HostName = %s\n" % hostName) logf.write("OutputPath = %s\n" % keyFile) dname='cn="Cloudstack User",ou="' + hostName + '",o="' + hostName + '",c="Unknown"'; logf.write("dname = %s\n" % dname) logf.flush() try : return_code = subprocess.Popen(["keytool", "-genkey", "-keystore", keyFile, "-storepass", "vmops.com", "-keypass", "vmops.com", "-keyalg", "RSA", "-validity", "3650", "-dname", dname],shell=True,stdout=logf, stderr=logf) return_code.wait() except OSError as e: logf.flush() traceback.print_exc(file=logf) logf.flush() logf.write("SSL key generated is : %s" % return_code) logf.flush() argsSize=len(sys.argv) if argsSize != 2: print("Usage: ssl-keys.py ") sys.exit(None) sslKeyPath=sys.argv[1] generateSSLKey(sslKeyPath)