Skip to content

Commit 833d1b4

Browse files
yadvrDaanHoogland
andauthored
cloudstack-setup-agent: mask libvirt non-monolithic services (#7114)
This masks sockets such as virtqemud.socket virtqemud-ro.socket virtqemud-admin.socket, and services virtqemud virtnetworkd virtstoraged that block libvirtd to be used a monolithic service. Useful for both EL9 and existing Ubuntu 22.04, and newer distros. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> Co-authored-by: dahn <daan.hoogland@gmail.com>
1 parent e7b7efe commit 833d1b4

File tree

3 files changed

+59
-36
lines changed

3 files changed

+59
-36
lines changed

python/lib/cloudutils/serviceConfig.py

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -617,11 +617,20 @@ def config(self):
617617
cfo.addEntry("LIBVIRTD_ARGS", "-l")
618618
cfo.save()
619619
if os.path.exists("/lib/systemd/system/libvirtd.socket"):
620-
bash("/bin/systemctl mask libvirtd.socket");
621-
bash("/bin/systemctl mask libvirtd-ro.socket");
622-
bash("/bin/systemctl mask libvirtd-admin.socket");
623-
bash("/bin/systemctl mask libvirtd-tls.socket");
624-
bash("/bin/systemctl mask libvirtd-tcp.socket");
620+
bash("/bin/systemctl mask \
621+
libvirtd.socket \
622+
libvirtd-ro.socket \
623+
libvirtd-admin.socket \
624+
libvirtd-tls.socket \
625+
libvirtd-tcp.socket");
626+
if os.path.exists("/lib/systemd/system/virtqemud.socket"):
627+
bash("/bin/systemctl mask \
628+
virtqemud.socket \
629+
virtqemud-ro.socket \
630+
virtqemud-admin.socket \
631+
virtqemud \
632+
virtnetworkd \
633+
virtstoraged");
625634

626635
filename = "/etc/libvirt/qemu.conf"
627636

@@ -650,11 +659,12 @@ def config(self):
650659
configureLibvirtConfig(self.syscfg.env.secure, self)
651660

652661
if os.path.exists("/usr/lib/systemd/system/libvirtd.socket"):
653-
bash("/bin/systemctl mask libvirtd.socket");
654-
bash("/bin/systemctl mask libvirtd-ro.socket");
655-
bash("/bin/systemctl mask libvirtd-admin.socket");
656-
bash("/bin/systemctl mask libvirtd-tls.socket");
657-
bash("/bin/systemctl mask libvirtd-tcp.socket");
662+
bash("/bin/systemctl mask \
663+
libvirtd.socket \
664+
libvirtd-ro.socket \
665+
libvirtd-admin.socket \
666+
libvirtd-tls.socket \
667+
libvirtd-tcp.socket");
658668

659669
cfo = configFileOps("/etc/sysconfig/libvirtd", self)
660670
cfo.addEntry("LIBVIRTD_ARGS", "-l")
@@ -694,11 +704,20 @@ def setupLiveMigration(self):
694704
cfo = configFileOps("/etc/default/libvirtd", self)
695705
cfo.replace_or_add_line("libvirtd_opts=","libvirtd_opts='-l'")
696706
if os.path.exists("/lib/systemd/system/libvirtd.socket"):
697-
bash("/bin/systemctl mask libvirtd.socket");
698-
bash("/bin/systemctl mask libvirtd-ro.socket");
699-
bash("/bin/systemctl mask libvirtd-admin.socket");
700-
bash("/bin/systemctl mask libvirtd-tls.socket");
701-
bash("/bin/systemctl mask libvirtd-tcp.socket");
707+
bash("/bin/systemctl mask \
708+
libvirtd.socket \
709+
libvirtd-ro.socket \
710+
libvirtd-admin.socket \
711+
libvirtd-tls.socket \
712+
libvirtd-tcp.socket");
713+
if os.path.exists("/lib/systemd/system/virtqemud.socket"):
714+
bash("/bin/systemctl mask \
715+
virtqemud.socket \
716+
virtqemud-ro.socket \
717+
virtqemud-admin.socket \
718+
virtqemud \
719+
virtnetworkd \
720+
virtstoraged");
702721

703722
def config(self):
704723
try:

python/lib/cloudutils/syscfg.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ def getAgent(glbEnv):
3737
distribution = glbEnv.distribution.getVersion()
3838
if distribution == "Ubuntu":
3939
return sysConfigAgentUbuntu(glbEnv)
40-
elif distribution == "Fedora" or distribution == "RHEL6":
41-
return sysConfigRedhat6(glbEnv)
4240
elif distribution == "CentOS" or distribution == "RHEL5":
43-
return sysConfigRedhat5(glbEnv)
41+
return sysConfigEL5(glbEnv)
42+
elif distribution == "Fedora" or distribution == "RHEL6":
43+
return sysConfigEL6(glbEnv)
4444
elif distribution == "RHEL7":
45-
return sysConfigRedhat7(glbEnv)
46-
elif distribution == "RHEL8":
47-
return sysConfigRedhat8(glbEnv)
45+
return sysConfigEL7(glbEnv)
46+
elif distribution in ["RHEL8", "RHEL9"]:
47+
return sysConfigEL(glbEnv)
4848
elif distribution == "SUSE":
4949
return sysConfigSUSE(glbEnv)
5050
else:
@@ -151,10 +151,10 @@ def __init__(self, env):
151151
self.svo = serviceOpsRedhat7Later()
152152
super(sysConfigAgentRedhat7Base, self).__init__(env)
153153

154-
class sysConfigAgentRedhat8Base(sysConfigAgent):
154+
class sysConfigAgentELBase(sysConfigAgent):
155155
def __init__(self, env):
156156
self.svo = serviceOpsRedhat7Later()
157-
super(sysConfigAgentRedhat8Base, self).__init__(env)
157+
super(sysConfigAgentELBase, self).__init__(env)
158158

159159
class sysConfigAgentSUSE(sysConfigAgent):
160160
def __init__(self, env):
@@ -174,34 +174,34 @@ def __init__(self, glbEnv):
174174
nfsConfig(self),
175175
cloudAgentConfig(self)]
176176

177-
#it covers RHEL6/Fedora13/Fedora14
178-
class sysConfigRedhat6(sysConfigAgentRedhatBase):
177+
#It covers RHEL5/CentOS5, the mainly difference is that there is no cgroup
178+
class sysConfigEL5(sysConfigAgentRedhatBase):
179179
def __init__(self, glbEnv):
180-
super(sysConfigRedhat6, self).__init__(glbEnv)
180+
super(sysConfigEL5, self).__init__(glbEnv)
181181
self.services = [hostConfig(self),
182-
cgroupConfig(self),
183182
securityPolicyConfigRedhat(self),
184183
networkConfigRedhat(self),
185184
libvirtConfigRedhat(self),
186185
firewallConfigAgent(self),
187-
nfsConfig(self),
188186
cloudAgentConfig(self)]
189187

190-
#It covers RHEL5/CentOS5, the mainly difference is that there is no cgroup
191-
class sysConfigRedhat5(sysConfigAgentRedhatBase):
188+
#it covers RHEL6/Fedora13/Fedora14
189+
class sysConfigEL6(sysConfigAgentRedhatBase):
192190
def __init__(self, glbEnv):
193-
super(sysConfigRedhat5, self).__init__(glbEnv)
191+
super(sysConfigEL6, self).__init__(glbEnv)
194192
self.services = [hostConfig(self),
193+
cgroupConfig(self),
195194
securityPolicyConfigRedhat(self),
196195
networkConfigRedhat(self),
197196
libvirtConfigRedhat(self),
198197
firewallConfigAgent(self),
198+
nfsConfig(self),
199199
cloudAgentConfig(self)]
200200

201201
#it covers RHEL7
202-
class sysConfigRedhat7(sysConfigAgentRedhat7Base):
202+
class sysConfigEL7(sysConfigAgentRedhat7Base):
203203
def __init__(self, glbEnv):
204-
super(sysConfigRedhat7, self).__init__(glbEnv)
204+
super(sysConfigEL7, self).__init__(glbEnv)
205205
self.services = [hostConfig(self),
206206
securityPolicyConfigRedhat(self),
207207
networkConfigRedhat(self),
@@ -210,10 +210,10 @@ def __init__(self, glbEnv):
210210
nfsConfig(self),
211211
cloudAgentConfig(self)]
212212

213-
#it covers RHEL8
214-
class sysConfigRedhat8(sysConfigAgentRedhat8Base):
213+
#it covers RHEL8 and later
214+
class sysConfigEL(sysConfigAgentELBase):
215215
def __init__(self, glbEnv):
216-
super(sysConfigRedhat8, self).__init__(glbEnv)
216+
super(sysConfigEL, self).__init__(glbEnv)
217217
self.services = [hostConfig(self),
218218
securityPolicyConfigRedhat(self),
219219
networkConfigRedhat(self),

python/lib/cloudutils/utilities.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ def __init__(self):
120120
version.find("CentOS Linux release 8") != -1 or version.find("CentOS release 8.") != -1 or
121121
version.find("Linux release 8") != -1):
122122
self.distro = "RHEL8"
123+
elif (version.find("Red Hat Enterprise Linux Server release 9") != -1 or version.find("Scientific Linux release 9") != -1 or
124+
version.find("Red Hat Enterprise Linux release 9") != -1 or version.find("Linux release 9.") != -1 or
125+
version.find("Linux release 9") != -1):
126+
self.distro = "RHEL9"
123127
elif version.find("CentOS") != -1:
124128
self.distro = "CentOS"
125129
else:

0 commit comments

Comments
 (0)