Skip to main content
Glama
danielbodnar

VyOS MCP Server

by danielbodnar
build-vyos-image.sh2.42 kB
#!/bin/bash # Script to build a proper VyOS runtime Docker image from ISO # Based on: https://docs.vyos.io/en/latest/installation/virtual/docker.html set -euo pipefail VYOS_VERSION="${1:-1.5-rolling-202507120000}" VYOS_ISO_URL="https://github.com/vyos/vyos-rolling-nightly-builds/releases/download/${VYOS_VERSION}/vyos-${VYOS_VERSION}-generic-amd64.iso" VYOS_IMAGE_NAME="vyos-runtime:${VYOS_VERSION}" WORK_DIR="/tmp/vyos-docker-build" echo "🐳 Building VyOS Docker Runtime Image" echo "Version: ${VYOS_VERSION}" echo "ISO URL: ${VYOS_ISO_URL}" echo "Image Name: ${VYOS_IMAGE_NAME}" # Check if running as root or with sudo if [[ $EUID -ne 0 ]]; then echo "This script needs to be run as root or with sudo for loop device access" exit 1 fi # Clean up any previous build cleanup() { echo "🧹 Cleaning up..." if mountpoint -q "${WORK_DIR}/mnt" 2>/dev/null; then umount "${WORK_DIR}/mnt" || true fi if [[ -n "${LOOP_DEV:-}" ]]; then losetup -d "${LOOP_DEV}" || true fi rm -rf "${WORK_DIR}" || true } trap cleanup EXIT # Create working directory echo "📁 Creating working directory..." mkdir -p "${WORK_DIR}/mnt" cd "${WORK_DIR}" # Download VyOS ISO if not exists if [[ ! -f "vyos-${VYOS_VERSION}.iso" ]]; then echo "📥 Downloading VyOS ISO..." curl -L -o "vyos-${VYOS_VERSION}.iso" "${VYOS_ISO_URL}" else echo "✅ VyOS ISO already exists" fi # Mount the ISO echo "💿 Mounting ISO..." LOOP_DEV=$(losetup --find --show "vyos-${VYOS_VERSION}.iso") mount -o ro "${LOOP_DEV}" "${WORK_DIR}/mnt" # Extract VyOS filesystem echo "📦 Extracting VyOS filesystem..." unsquashfs -d "${WORK_DIR}/vyos-root" "${WORK_DIR}/mnt/live/filesystem.squashfs" # Unmount ISO umount "${WORK_DIR}/mnt" losetup -d "${LOOP_DEV}" LOOP_DEV="" # Import as Docker image echo "🐳 Creating Docker image..." cd "${WORK_DIR}/vyos-root" tar -c . | docker import - "${VYOS_IMAGE_NAME}" echo "✅ VyOS Docker image created successfully: ${VYOS_IMAGE_NAME}" echo "" echo "🚀 Usage:" echo " # Run VyOS container" echo " docker run -d --rm --name vyos --privileged \\" echo " -v /lib/modules:/lib/modules:ro \\" echo " ${VYOS_IMAGE_NAME} /sbin/init" echo "" echo " # Access VyOS" echo " docker exec -it vyos su - vyos" echo "" echo "💡 Update your compose.yml to use: ${VYOS_IMAGE_NAME}" echo "" echo "📝 Example version for VyOS 1.5:" echo " 1.5-rolling-202507120000"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielbodnar/vyos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server