diff --git a/setup_managed_node.sh b/setup_managed_node.sh index 694b460..5fdc88a 100644 --- a/setup_managed_node.sh +++ b/setup_managed_node.sh @@ -17,11 +17,38 @@ } trap cleanup EXIT +apt_update_status="" + +install_cmd() +{ + local cmd="$1" + local package="${2:-1}" + if ! command -v "$cmd" >/dev/null 2>&1; then + if command -v apt-get >/dev/null 2>&1; then + if [[ ! $apt_update_status ]]; then + $apt_update_status="done" + apt-get update + fi + apt-get install -y $package + elif command -v dnf >/dev/null 2>&1; then + dnf install -y $package + elif command -v yum >/dev/null 2>&1; then + yum install -y $package + else + echo "WARNING: Could not detect package manager. Install $package manually." + return 1 + fi + fi + return 0 +} + if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 fi +install_cmd "sudo" "passwd" || exit 1 + echo "==> Creating ansible user (if needed)" if ! id "${ANSIBLE_USER}" >/dev/null 2>&1; then useradd --create-home --shell /bin/bash "${ANSIBLE_USER}" @@ -130,18 +157,7 @@ fi echo "==> Ensuring python3 is installed" -if ! command -v python3 >/dev/null 2>&1; then - if command -v apt-get >/dev/null 2>&1; then - apt-get update - apt-get install -y python3 - elif command -v dnf >/dev/null 2>&1; then - dnf install -y python3 - elif command -v yum >/dev/null 2>&1; then - yum install -y python3 - else - echo "WARNING: Could not detect package manager. Install python3 manually." - fi -fi +install_cmd python3 echo echo "===================================================="