diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-07-17 23:10:25 +0000 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-08-01 21:20:21 +0200 |
commit | edcc8b696d9b249f2514c0322db90315465155c6 (patch) | |
tree | 0c91effced8beb7eb9a525ebc4e8d5363bc17df6 | |
parent | b0370b31d3649893d57b1729979b1124a47a6f05 (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-x | ci/deploy.sh | 15 |
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 |