Skip to content

Instantly share code, notes, and snippets.

@nirgeier
Last active December 21, 2025 17:01
Show Gist options
  • Select an option

  • Save nirgeier/18d16bf1c8fc21b158cf4e024e7131ab to your computer and use it in GitHub Desktop.

Select an option

Save nirgeier/18d16bf1c8fc21b158cf4e024e7131ab to your computer and use it in GitHub Desktop.
Installations

Required Tools

Tool Name CentOS Windows
Visual Studio Code sudo yum install code Download Installer
Python 3 sudo yum install python3 Download Installer
Node.js sudo yum install -y nodejs Download Installer
Git sudo yum install git Download Installer
Docker sudo yum install docker-ce Download Docker Desktop
Kubernetes (kubectl) sudo yum install -y kubectl Installation Docs
Ollama curl -fsSL https://ollama.com/install.sh | sh Download Installer
MCP Inspector npm install -g @modelcontextprotocol/inspector npm install -g @modelcontextprotocol/inspector
#!/bin/bash
set -euo pipefail

# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

log_section() {
  echo -e "\n${BLUE}================================================================${NC}"
  echo -e "${CYAN}$1${NC}"
  echo -e "${BLUE}================================================================${NC}"
}

log_success() {
  echo -e "${GREEN}$1${NC}"
}

log_error() {
  echo -e "${RED}$1${NC}"
}

log_section "Updating system and installing base tools"
yum update -y || true
yum install -y wget python3 git || true
log_success "Base tools installed"

#######################################################
### Install Ollama
#######################################################
log_section "Installing Ollama"
#curl -fsSL https://ollama.com/install.sh | sh || log_error "Ollama installation failed"
log_success "Ollama installed"

#######################################################
### Install Docker
#######################################################
log_section "Installing Docker"
yum remove -y podman buildah || true
yum install -y dnf-plugins-core || true
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo || true
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || true
systemctl enable docker || true
systemctl start docker || true
docker --version || true
log_success "Docker installed"

#######################################################
### Install Node.js
#######################################################
log_section "Installing Node.js 20+"
dnf module reset nodejs -y
dnf module enable nodejs:20 -y
dnf install nodejs -y
node -v
npm -v
log_success "Node.js installed"

#######################################################
### Install MCP Inspector
#######################################################
log_section "Installing MCP Inspector"
npm install -g @modelcontextprotocol/inspector
log_success "MCP Inspector installed"

#######################################################
### Install Kubectl
#######################################################
log_section "Installing Kubectl"
KVER="$(curl -fsSL https://dl.k8s.io/release/stable.txt)"
ARCH="$(uname -m)"
if [ "$ARCH" = "x86_64" ]; then
  KUBECTL_ARCH="amd64"
elif [ "$ARCH" = "aarch64" ]; then
  KUBECTL_ARCH="arm64"
else
  echo "Unsupported architecture: $ARCH"
  exit 1
fi

curl -fsSLO "https://dl.k8s.io/release/${KVER}/bin/linux/${KUBECTL_ARCH}/kubectl"
install -m 0755 kubectl /usr/local/bin/kubectl
rm -f kubectl
log_success "Kubectl installed"

#######################################################
### Install Kind
#######################################################
log_section "Installing Kind"
# Re-using KUBECTL_ARCH from previous step
KIND_VERSION="v0.24.0"
curl -Lo ./kind "https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-${KUBECTL_ARCH}"
chmod +x ./kind
mv ./kind /usr/local/bin/kind
kind --version
log_success "Kind installed"

#######################################################
### Verify Installations
#######################################################
log_section "Verifying installed tools"

check_tool() {
  local name="$1"
  local cmd="$2"

  if eval "$cmd" >/dev/null 2>&1; then
    version=$(eval "$cmd" 2>&1 | head -n 1)
    printf "%-20s ${GREEN}%-12s${NC} %s\n" "$name" "INSTALLED" "$version"
  else
    printf "%-20s ${RED}%-12s${NC} %s\n" "$name" "MISSING" "-"
  fi
}

printf "%-20s %-12s %s\n" "Tool" "Status" "Version"
printf "%-20s %-12s %s\n" "----" "------" "-------"

check_tool "Docker" "docker --version"
check_tool "Git" "git --version"
check_tool "Kind" "kind --version"
check_tool "Kubectl" "kubectl version --client --output=yaml | grep gitVersion"
check_tool "MCP Inspector" "npm list -g @modelcontextprotocol/inspector --depth=0 | grep inspector"
check_tool "Node.js" "node --version"
check_tool "NPM" "npm --version"
check_tool "Ollama" "ollama --version"
check_tool "Pip" "python3 -m pip --version"
check_tool "Python 3" "python3 --version"

log_section "Verification complete"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment