summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdeploy.sh5
-rwxr-xr-xfunctions.sh52
2 files changed, 57 insertions, 0 deletions
diff --git a/deploy.sh b/deploy.sh
index 34f13e4..78e2978 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -25,6 +25,11 @@ source "$CURRENTPATH/deploy.env"
# shellcheck source=./functions.sh
source "$CURRENTPATH/functions.sh"
+# ---------------------------------------------------------------------
+# check installation and runtime prerequisites
+# ---------------------------------------------------------------------
+check_prerequisites
+
# Clean up leftovers
clean_up
diff --git a/functions.sh b/functions.sh
index 47c8536..f991dc8 100755
--- a/functions.sh
+++ b/functions.sh
@@ -20,6 +20,58 @@ clean_up() {
sleep 5
}
+
+check_prerequisites() {
+ echo "Info : Check prerequisites"
+
+ #-------------------------------------------------------------------------------
+ # We shouldn't be running as root
+ #-------------------------------------------------------------------------------
+ if [[ "$(whoami)" == "root" ]]; then
+ echo "ERROR : This script must not be run as root!"
+ echo " Please switch to a regular user before running the script."
+ exit 1
+ fi
+
+ #-------------------------------------------------------------------------------
+ # Check for passwordless sudo
+ #-------------------------------------------------------------------------------
+ if ! sudo -n "true"; then
+ echo "ERROR : passwordless sudo is needed for '$(id -nu)' user."
+ exit 1
+ fi
+
+ #-------------------------------------------------------------------------------
+ # Check if SSH key exists
+ #-------------------------------------------------------------------------------
+ if [[ ! -f "$HOME/.ssh/id_rsa" ]]; then
+ echo "ERROR : You must have SSH keypair in order to run this script!"
+ exit 1
+ fi
+
+ #-------------------------------------------------------------------------------
+ # We are using sudo so we need to make sure that env_reset is not present
+ #-------------------------------------------------------------------------------
+ sudo sed -i "s/^Defaults.*env_reset/#&/" /etc/sudoers
+
+ #-------------------------------------------------------------------------------
+ # Check if Ansible is installed
+ #-------------------------------------------------------------------------------
+ if ! command -v ansible &> /dev/null; then
+ echo "ERROR : Ansible not found. Please install."
+ exit 1
+ fi
+
+ #-------------------------------------------------------------------------------
+ # Check is libvirt is installed
+ #-------------------------------------------------------------------------------
+ if ! command -v virsh &> /dev/null; then
+ echo "ERROR : Libvirt not found. Please install."
+ exit 1
+ fi
+}
+
+
# Create jumphost VM
create_jump() {
# Create VM image