p/fuel: deploy: Allow non-root deploys 57/37657/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 17 Jul 2017 23:45:17 +0000 (01:45 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Mon, 17 Jul 2017 23:52:32 +0000 (01:52 +0200)
Fuel@OPNFV's ci/deploy.sh script imposes a hard requirement on
running as the root user, which can be refactored into a series of
smaller requirements.

Instead, relax the check to the ability to run sudo commands
inside the script, and explicitly add sudo for the package
installation commands.

This also adds a requirement for the Jenkins user running the
deploy to be part of the "kvm" and "libvirtd" groups, so
libvirt/virsh can manage VMs on the jump server / Jenkins slave.

See related change in OPNFV Releng repository [1].

[1] https://gerrit.opnfv.org/gerrit/#/c/37655

Change-Id: I29b90d285c99f85462493c2a3890264365fca9f0
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/opnfv-fuel/0007-deploy-Allow-non-root-deploys.patch [new file with mode: 0644]

diff --git a/patches/opnfv-fuel/0007-deploy-Allow-non-root-deploys.patch b/patches/opnfv-fuel/0007-deploy-Allow-non-root-deploys.patch
new file mode 100644 (file)
index 0000000..a7599e2
--- /dev/null
@@ -0,0 +1,37 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Mon, 17 Jul 2017 23:10:25 +0000
+Subject: [PATCH] deploy: Allow non-root deploys
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ ci/deploy.sh | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/ci/deploy.sh b/ci/deploy.sh
+index 92c7947..edf05be 100755
+--- a/ci/deploy.sh
++++ b/ci/deploy.sh
+@@ -212,8 +212,8 @@ do
+     esac
+ done
+
+-if [[ $EUID -ne 0 ]]; then
+-    echo "This script must be run as root" 1>&2
++if [[ $(sudo whoami) != 'root' ]]; then
++    echo "This script requires sudo rights" 1>&2
+     exit 1
+ fi
+
+@@ -230,9 +230,9 @@ pushd ${DEPLOY_DIR} > /dev/null
+ # scenario, etc.
+
+ # Install required packages
+-[ -n "$(command -v apt-get)" ] && apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm vgabios && \
+-  ln -sf /usr/share/vgabios/vgabios.bin /usr/share/qemu/vgabios-stdvga.bin
+-[ -n "$(command -v yum)" ] && yum install -y genisoimage curl virt-install qemu-kvm vgabios
++[ -n "$(command -v apt-get)" ] && sudo apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm vgabios && \
++  sudo ln -sf /usr/share/vgabios/vgabios.bin /usr/share/qemu/vgabios-stdvga.bin
++[ -n "$(command -v yum)" ] && sudo yum install -y genisoimage curl virt-install qemu-kvm vgabios
+
+ # Check scenario file existence
+ if [[ ! -f  ../config/${DEPLOY_SCENARIO}.yaml ]]; then