diff --git a/client/bindir/cloud-setup-management.in b/client/bindir/cloud-setup-management.in index aa9a46ba6ba..4d742e91105 100755 --- a/client/bindir/cloud-setup-management.in +++ b/client/bindir/cloud-setup-management.in @@ -29,9 +29,12 @@ if __name__ == '__main__': parser = OptionParser() parser.add_option("--https", action="store_true", dest="https", help="Enable HTTPs connection of management server") + parser.add_option("--tomcat7", action="store_true", dest="tomcat7", help="Use Tomcat7 configuration files in Management Server") (options, args) = parser.parse_args() if options.https: glbEnv.svrMode = "HttpsServer" + if options.tomcat7: + glbEnv.svrConf = "Tomcat7" glbEnv.mode = "Server" diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec index 5f9f113d01e..e94ef655c96 100644 --- a/packaging/centos7/cloud.spec +++ b/packaging/centos7/cloud.spec @@ -249,16 +249,16 @@ cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/ rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms -for name in catalina.properties db.properties log4j-cloud.xml web.xml \ - server.xml commons-logging.properties environment.properties java.security.ciphers tomcat-users.xml +for name in db.properties log4j-cloud.xml server7-nonssl.xml server7-ssl.xml \ + commons-logging.properties catalina.policy catalina.properties classpath.conf \ + tomcat-users.xml web.xml environment.properties java.security.ciphers do - cp packaging/centos7/tomcat7/$name \ + mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \ ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name - rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name done -#ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \ -# ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml +ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \ + ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \ ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client @@ -438,10 +438,13 @@ fi %config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties %config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml %config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml +%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy %config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties +%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf +%config(noreplace) %{_sysconfdir}/%{name}/management/server7-nonssl.xml +%config(noreplace) %{_sysconfdir}/%{name}/management/server7-ssl.xml %config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml %config(noreplace) %{_sysconfdir}/%{name}/management/web.xml -%config(noreplace) %{_sysconfdir}/%{name}/management/server.xml %config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties %config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers %config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties diff --git a/python/lib/cloudutils/globalEnv.py b/python/lib/cloudutils/globalEnv.py index 1f6083c5c5b..106e3bb0b0a 100644 --- a/python/lib/cloudutils/globalEnv.py +++ b/python/lib/cloudutils/globalEnv.py @@ -22,6 +22,8 @@ class globalEnv: self.svrMode = None #myCloud/Agent/Console self.agentMode = None + #Tomcat6/Tomcat7 + self.svrConf = None #debug self.debug = False #management server IP diff --git a/python/lib/cloudutils/serviceConfigServer.py b/python/lib/cloudutils/serviceConfigServer.py index b928df4d49d..56e09a26ba8 100644 --- a/python/lib/cloudutils/serviceConfigServer.py +++ b/python/lib/cloudutils/serviceConfigServer.py @@ -79,30 +79,43 @@ class cloudManagementConfig(serviceCfgBase): if not cmd.isSuccess(): raise CloudInternalException(cmd.getErrMsg()) - + if not self.syscfg.env.svrConf == "Tomcat7": cfo = configFileOps("/etc/cloudstack/management/tomcat6.conf", self) cfo.add_lines("JAVA_OPTS+=\" -Djavax.net.ssl.trustStore=%s \""%keyPath) elif self.syscfg.env.svrMode == "HttpsServer": - if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"): - raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enables failed") - if os.path.exists("/etc/cloudstack/management/server.xml"): - bash("rm -f /etc/cloudstack/management/server.xml") - if os.path.exists("/etc/cloudstack/management/tomcat6.conf"): - bash("rm -f /etc/cloudstack/management/tomcat6.conf") - bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml") - bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf") + if self.syscfg.env.svrConf == "Tomcat7": + if not os.path.exists("/etc/cloudstack/management/server7-ssl.xml"): + raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-ssl.xml, https enable failed") + if os.path.exists("/etc/cloudstack/management/server.xml"): + bash("rm -f /etc/cloudstack/management/server.xml") + bash("ln -s /etc/cloudstack/management/server7-ssl.xml /etc/cloudstack/management/server.xml") + else: + if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"): + raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enable failed") + if os.path.exists("/etc/cloudstack/management/server.xml"): + bash("rm -f /etc/cloudstack/management/server.xml") + if os.path.exists("/etc/cloudstack/management/tomcat6.conf"): + bash("rm -f /etc/cloudstack/management/tomcat6.conf") + bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml") + bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf") if not bash("iptables-save |grep PREROUTING | grep 6443").isSuccess(): bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 6443") else: - if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"): - raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enables failed") - if os.path.exists("/etc/cloudstack/management/server.xml"): - bash("rm -f /etc/cloudstack/management/server.xml") - if os.path.exists("/etc/cloudstack/management/tomcat6.conf"): - bash("rm -f /etc/cloudstack/management/tomcat6.conf") - bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml") - bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf") - + if self.syscfg.env.svrConf == "Tomcat7": + if not os.path.exists("/etc/cloudstack/management/server7-nonssl.xml"): + raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-nonssl.xml, https enable failed") + if os.path.exists("/etc/cloudstack/management/server.xml"): + bash("rm -f /etc/cloudstack/management/server.xml") + bash("ln -s /etc/cloudstack/management/server7-nonssl.xml /etc/cloudstack/management/server.xml") + else: + if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"): + raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enable failed") + if os.path.exists("/etc/cloudstack/management/server.xml"): + bash("rm -f /etc/cloudstack/management/server.xml") + if os.path.exists("/etc/cloudstack/management/tomcat6.conf"): + bash("rm -f /etc/cloudstack/management/tomcat6.conf") + bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml") + bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf") bash("touch /var/run/cloudstack-management.pid") bash("chown cloud.cloud /var/run/cloudstack-management.pid") #distro like sl 6.1 needs this folder, or tomcat6 failed to start @@ -116,7 +129,10 @@ class cloudManagementConfig(serviceCfgBase): cfo.save() try: - self.syscfg.svo.disableService("tomcat6") + if self.syscfg.env.svrConf == "Tomcat7": + self.syscfg.svo.disableService("tomcat") + else: + self.syscfg.svo.disableService("tomcat6") except: pass