aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-07-17 23:10:25 +0000
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-08-01 21:20:21 +0200
commitedcc8b696d9b249f2514c0322db90315465155c6 (patch)
tree0c91effced8beb7eb9a525ebc4e8d5363bc17df6
parentb0370b31d3649893d57b1729979b1124a47a6f05 (diff)
ci/deploy.sh: Allow non-root deploys
Currently, deploying Fuel@OPNFV requires the `ci/deploy.sh` to be ran as root user, for: - hypervisor access (virsh); - installing prerequisite packages; We can support non-root deploys if we relax above restriction into: - current user should have hypervisor access beforehand (new check added); - current user has passwordless sudo rights, for installing packages; Later, we should move the package installation out of the deploy script (`ci/deploy.sh`), making the whole deploy possible without sudo, only hypervisor access. After this change, the old way (sudo ci/deploy.sh) should work just like it used to before, so no regression/behavior change should be introduced with this. Change-Id: Ib2ea96aa7b6d67ba0606318407a8adeb51e6969d Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-rwxr-xr-xci/deploy.sh15
1 files changed, 10 insertions, 5 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh
index a77dd0f88..2b7638efc 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -87,7 +87,7 @@ $(notify "Disabled input parameters (not yet supported with MCP):" 3)
-i (disabled) .iso image to be deployed (needs to be provided in a URI
style, it can be a local resource: file:// or a remote resource http(s)://)
-$(notify "[NOTE] Root priviledges are needed for this script to run" 3)
+$(notify "[NOTE] sudo & virsh priviledges are needed for this script to run" 3)
Example:
@@ -240,8 +240,13 @@ do
esac
done
-if [[ $EUID -ne 0 ]]; then
- notify "[ERROR] This script must be run as root\n" 1>&2
+if [[ "$(sudo whoami)" != 'root' ]]; then
+ notify "This script requires sudo rights\n" 1>&2
+ exit 1
+fi
+
+if ! virsh list >/dev/null 2>&1; then
+ notify "This script requires hypervisor access\n" 1>&2
exit 1
fi
@@ -269,9 +274,9 @@ pushd "${DEPLOY_DIR}" > /dev/null
# scenario, etc.
# Install required packages
-[ -n "$(command -v apt-get)" ] && apt-get install -y \
+[ -n "$(command -v apt-get)" ] && sudo apt-get install -y \
git make rsync mkisofs curl virtinst cpu-checker qemu-kvm
-[ -n "$(command -v yum)" ] && yum install -y \
+[ -n "$(command -v yum)" ] && sudo yum install -y \
git make rsync genisoimage curl virt-install qemu-kvm
# Check scenario file existence