diff options
-rwxr-xr-x | deploy.sh | 5 | ||||
-rwxr-xr-x | functions.sh | 52 |
2 files changed, 57 insertions, 0 deletions
@@ -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 |