Skip to main content
Glama

VyOS MCP Server

by danielbodnar
build-vyos-image.shโ€ข2.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