mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 01:32:18 +02:00
CLOUDSTACK-8339: Allow non-root users to add KVM host
This allows non-root users to add KVM hosts, the user should be an admin or added to sudoers to execute sudo cloudstack-setup-agent. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> Signed-off-by: Remi Bergsma <apache@remi.nl> This closes #288 (cherry picked from commit d2b0c1a32b2d8719eafd6d4574de9a824d46d290) Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
dfafb441b0
commit
e5d3084526
20
agent/bindir/cloudstack-agent-profile.sh.in
Normal file
20
agent/bindir/cloudstack-agent-profile.sh.in
Normal file
@ -0,0 +1,20 @@
|
||||
#!/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.
|
||||
|
||||
# need access to lsmod for adding host as non-root
|
||||
PATH=$PATH:/sbin
|
||||
1
debian/cloudstack-agent.install
vendored
1
debian/cloudstack-agent.install
vendored
@ -18,6 +18,7 @@
|
||||
/etc/cloudstack/agent/agent.properties
|
||||
/etc/cloudstack/agent/environment.properties
|
||||
/etc/cloudstack/agent/log4j-cloud.xml
|
||||
/etc/profile.d/cloudstack-agent-profile.sh
|
||||
/etc/init.d/cloudstack-agent
|
||||
/usr/bin/cloudstack-setup-agent
|
||||
/usr/bin/cloudstack-ssh
|
||||
|
||||
2
debian/rules
vendored
2
debian/rules
vendored
@ -37,6 +37,7 @@ override_dh_auto_install:
|
||||
|
||||
# cloudstack-agent
|
||||
mkdir $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/agent
|
||||
mkdir $(DESTDIR)/$(SYSCONFDIR)/profile.d
|
||||
mkdir $(DESTDIR)/var/log/$(PACKAGE)/agent
|
||||
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent
|
||||
mkdir $(DESTDIR)/usr/share/$(PACKAGE)-agent/plugins
|
||||
@ -46,6 +47,7 @@ override_dh_auto_install:
|
||||
install -D packaging/debian/init/cloud-agent $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-agent
|
||||
install -D agent/target/transformed/cloud-setup-agent $(DESTDIR)/usr/bin/cloudstack-setup-agent
|
||||
install -D agent/target/transformed/cloud-ssh $(DESTDIR)/usr/bin/cloudstack-ssh
|
||||
install -D agent/target/transformed/cloudstack-agent-profile.sh $(DESTDIR)/$(SYSCONFDIR)/profile.d/cloudstack-agent-profile.sh
|
||||
install -D agent/target/transformed/cloudstack-agent-upgrade $(DESTDIR)/usr/bin/cloudstack-agent-upgrade
|
||||
install -D agent/target/transformed/libvirtqemuhook $(DESTDIR)/usr/share/$(PACKAGE)-agent/lib/
|
||||
install -D agent/target/transformed/* $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/agent
|
||||
|
||||
@ -224,6 +224,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
|
||||
|
||||
# Common
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/scripts
|
||||
@ -321,6 +322,7 @@ install -D agent/target/transformed/cloud-setup-agent ${RPM_BUILD_ROOT}%{_bindir
|
||||
install -D agent/target/transformed/cloudstack-agent-upgrade ${RPM_BUILD_ROOT}%{_bindir}/%{name}-agent-upgrade
|
||||
install -D agent/target/transformed/libvirtqemuhook ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib/libvirtqemuhook
|
||||
install -D agent/target/transformed/cloud-ssh ${RPM_BUILD_ROOT}%{_bindir}/%{name}-ssh
|
||||
install -D agent/target/transformed/cloudstack-agent-profile.sh ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d/%{name}-agent-profile.sh
|
||||
install -D plugins/hypervisors/kvm/target/cloud-plugin-hypervisor-kvm-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%name-agent/lib/cloud-plugin-hypervisor-kvm-%{_maventag}.jar
|
||||
cp plugins/hypervisors/kvm/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
|
||||
|
||||
@ -583,6 +585,7 @@ fi
|
||||
%attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade
|
||||
%attr(0755,root,root) %{_bindir}/%{name}-ssh
|
||||
%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-agent
|
||||
%attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh
|
||||
%attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/agent
|
||||
%dir %{_localstatedir}/log/%{name}/agent
|
||||
|
||||
@ -205,10 +205,14 @@ public abstract class LibvirtServerDiscoverer extends DiscovererBase implements
|
||||
parameters += " --guestNic=" + kvmGuestNic;
|
||||
parameters += " --hypervisor=" + cluster.getHypervisorType().toString().toLowerCase();
|
||||
|
||||
String setupAgentCommand = "cloudstack-setup-agent ";
|
||||
if (!username.equals("root")) {
|
||||
setupAgentCommand = "sudo cloudstack-setup-agent ";
|
||||
}
|
||||
if (!SSHCmdHelper.sshExecuteCmd(sshConnection,
|
||||
"cloudstack-setup-agent " + parameters, 3)) {
|
||||
setupAgentCommand + parameters, 3)) {
|
||||
s_logger.info("cloudstack agent setup command failed: "
|
||||
+ "cloudstack-setup-agent " + parameters);
|
||||
+ setupAgentCommand + parameters);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user