mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
* cloudstack: add support for EL10 This adds support for Fedora 40 and (upcoming) EL10 distro to be used as mgmt/usage server, mysql/nfs & KVM host. Python3 version has changed to 3.12.9 which isn't automatically determining the python-path. * python: WIP code, this fails right now Need to discuss/check if we can skip this code. Where/how is cgroup setup used with KVM agent. * prep cloudutils to be EL10 ready Fixes issue for Fedora, it was running old EL6 hooks which isn't applicable for modern Fedora version that are closer to EL8/9/10
77 lines
3.3 KiB
Python
Executable File
77 lines
3.3 KiB
Python
Executable File
#!/usr/bin/python3
|
|
# 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.
|
|
|
|
import os
|
|
import sys
|
|
# ---- This snippet of code adds the sources path and the waf configured PYTHONDIR to the Python path ----
|
|
# ---- We do this so cloud_utils can be looked up in the following order:
|
|
# ---- 1) Sources directory
|
|
# ---- 2) waf configured PYTHONDIR
|
|
# ---- 3) System Python path
|
|
for pythonpath in (
|
|
"@PYTHONDIR@",
|
|
os.path.join(os.path.dirname(__file__),os.path.pardir,os.path.pardir,"python","lib"),
|
|
):
|
|
if os.path.isdir(pythonpath): sys.path.insert(0,pythonpath)
|
|
# ---- End snippet of code ----
|
|
|
|
from cloudutils.syscfg import sysConfigFactory
|
|
from cloudutils.utilities import initLoging, UnknownSystemException
|
|
from cloudutils.cloudException import CloudRuntimeException, CloudInternalException
|
|
from cloudutils.globalEnv import globalEnv
|
|
from cloudutils.serviceConfigServer import cloudManagementConfig
|
|
from optparse import OptionParser
|
|
|
|
if __name__ == '__main__':
|
|
initLoging("@MSLOGDIR@/setupManagement.log")
|
|
glbEnv = globalEnv()
|
|
|
|
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="Depreciated option, don't use it")
|
|
parser.add_option("--no-start", action="store_true", dest="nostart", help="Do not start management server after successful configuration")
|
|
(options, args) = parser.parse_args()
|
|
if options.https:
|
|
glbEnv.svrMode = "HttpsServer"
|
|
if options.tomcat7:
|
|
print("The --tomcat7 option is deprecated, CloudStack now uses embedded Jetty server.")
|
|
if options.nostart:
|
|
glbEnv.noStart = True
|
|
|
|
glbEnv.mode = "Server"
|
|
|
|
print("Starting to configure CloudStack Management Server:")
|
|
try:
|
|
syscfg = sysConfigFactory.getSysConfigFactory(glbEnv)
|
|
except UnknownSystemException:
|
|
print("Error: CloudStack failed to detect your "
|
|
"operating system. Exiting.", file=sys.stderr)
|
|
sys.exit(1)
|
|
try:
|
|
syscfg.registerService(cloudManagementConfig)
|
|
syscfg.config()
|
|
print("CloudStack Management Server setup is Done!")
|
|
print("Please ensure ports 8080, 8250, 8443, and 9090 are opened and not firewalled for the management server and not in use by other processes on this host.")
|
|
except (CloudRuntimeException, CloudInternalException) as e:
|
|
print(e)
|
|
print("Try to restore your system:")
|
|
try:
|
|
syscfg.restore()
|
|
except:
|
|
pass
|