#!/bin/bash set -e # --- 1. Root Check --- if [[ $EUID -ne 0 ]]; then echo "Error: This script must be run as root (use sudo)." exit 1 fi # --- 2. OS & Version Check (RHEL 8+) --- if [ -f /etc/os-release ]; then . /etc/os-release MAJOR_VER=$(echo $VERSION_ID | cut -d. -f1) IS_RHEL_DERIVATIVE=false if [[ "$ID_LIKE" =~ "rhel" ]] || [[ "$ID_LIKE" =~ "fedora" ]] || [[ "$ID" =~ (rhel|centos|rocky|almalinux) ]]; then IS_RHEL_DERIVATIVE=true fi if [ "$IS_RHEL_DERIVATIVE" = true ] && [ "$MAJOR_VER" -ge 8 ]; then echo "✅ System check passed: $NAME $VERSION_ID" else echo "❌ Error: Requires RHEL/CentOS/Rocky/Alma version 8+." exit 1 fi else echo "❌ Error: /etc/os-release not found." exit 1 fi # ====================================================================== # 3. Security (Zscaler Root CA) # ====================================================================== echo ">>> Injecting Zscaler CA..." tee /etc/pki/ca-trust/source/anchors/ZscalerRootCertificate-2048-SHA256.crt > /dev/null << 'EOF' -----BEGIN CERTIFICATE----- MIIE0zCCA7ugAwIBAgIJANu+mC2Jt3uTMA0GCSqGSIb3DQEBCwUAMIGhMQswCQYD VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIU2FuIEpvc2Ux FTATBgNVBAoTDFpzY2FsZXIgSW5jLjEVMBMGA1UECxMMWnNjYWxlciBJbmMuMRgw FgYDVQQDEw9ac2NhbGVyIFJvb3QgQ0ExIjAgBgkqhkiG9w0BCQEWE3N1cHBvcnRA enNjYWxlci5jb20wHhcNMTQxMjE5MDAyNzU1WhcNNDIwNTA2MDAyNzU1WjCBoTEL MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFNhbiBK b3NlMRUwEwYDVQQKEwxac2NhbGVyIEluYy4xFTATBgNVBAsTDFpzY2FsZXIgSW5j LjEYMBYGA1UEAxMPWnNjYWxlciBSb290IENBMSIwIAYJKoZIhvcNAQkBFhNzdXBw b3J0QHpzY2FsZXIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA qT7STSxZRTgEFFf6doHajSc1vk5jmzmM6BWuOo044EsaTc9eVEV/HjH/1DWzZtcr fTj+ni205apMTlKBW3UYR+lyLHQ9FoZiDXYXK8poKSV5+Tm0Vls/5Kb8mkhVVqv7 LgYEmvEY7HPY+i1nEGZCa46ZXCOohJ0mBEtB9JVlpDIO+nN0hUMAYYdZ1KZWCMNf 5J/aTZiShsorN2A38iSOhdd+mcRM4iNL3gsLu99XhKnRqKoHeH83lVdfu1XBeoQz z5V6gA3kbRvhDwoIlTBeMa5l4yRdJAfdpkbFzqiwSgNdhbxTHnYYorDzKfr2rEFM dsMU0DHdeAZf711+1CunuQIDAQABo4IBCjCCAQYwHQYDVR0OBBYEFLm33UrNww4M hp1d3+wcBGnFTpjfMIHWBgNVHSMEgc4wgcuAFLm33UrNww4Mhp1d3+wcBGnFTpjf oYGnpIGkMIGhMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8G A1UEBxMIU2FuIEpvc2UxFTATBgNVBAoTDFpzY2FsZXIgSW5jLjEVMBMGA1UECxMM WnNjYWxlciBJbmMuMRgwFgYDVQQDEw9ac2NhbGVyIFJvb3QgQ0ExIjAgBgkqhkiG 9w0BCQEWE3N1cHBvcnRAenNjYWxlci5jb22CCQDbvpgtibd7kzAMBgNVHRMEBTAD AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAw0NdJh8w3NsJu4KHuVZUrmZgIohnTm0j+ RTmYQ9IKA/pvxAcA6K1i/LO+Bt+tCX+C0yxqB8qzuo+4vAzoY5JEBhyhBhf1uK+P /WVWFZN/+hTgpSbZgzUEnWQG2gOVd24msex+0Sr7hyr9vn6OueH+jj+vCMiAm5+u kd7lLvJsBu3AO3jGWVLyPkS3i6Gf+rwAp1OsRrv3WnbkYcFf9xjuaf4z0hRCrLN2 xFNjavxrHmsH8jPHVvgc1VD0Opja0l/BRVauTrUaoW6tE+wFG5rEcPGS80jjHK4S pB5iDj2mUZH1T8lzYtuZy0ZPirxmtsk3135+CKNa2OCAhhFjE0xd -----END CERTIFICATE----- EOF update-ca-trust extract # --- 4. Install Docker --- echo "Installing prerequisites..." dnf -y install dnf-plugins-core echo "Adding Docker CE repo..." dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo echo "Installing Docker packages..." dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin echo "Starting Docker service..." systemctl enable --now docker # --- 5. Configure User Group --- REAL_USER=${SUDO_USER:-$USER} echo "Adding user '$REAL_USER' to the 'docker' group..." usermod -aG docker "$REAL_USER" echo "✅ Installation complete." echo "___________________________________________________" echo "⚠️ Please log out and back in to use Docker."