From ce0c6d9939bd60ee72c639ab960bd84a710fd6a3 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sun, 30 Nov 2025 15:39:24 +0000 Subject: [PATCH] Remove unused deploy.sh script Containerlab commands are simple enough to run directly. Refs #15 --- scripts/deploy.sh | 248 ---------------------------------------------- 1 file changed, 248 deletions(-) delete mode 100644 scripts/deploy.sh diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100644 index 013fbab..0000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,248 +0,0 @@ -#!/bin/bash -# Deployment script for Arista EVPN-VXLAN ContainerLab - -set -e - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -# Function to print colored output -print_info() { - echo -e "${GREEN}[INFO]${NC} $1" -} - -print_warning() { - echo -e "${YELLOW}[WARNING]${NC} $1" -} - -print_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# Function to check prerequisites -check_prerequisites() { - print_info "Checking prerequisites..." - - # Check if running as root or with sudo - if [ "$EUID" -ne 0 ]; then - print_error "Please run with sudo" - exit 1 - fi - - # Check if containerlab is installed - if ! command -v containerlab &> /dev/null; then - print_error "ContainerLab is not installed. Please install it first." - print_info "Visit: https://containerlab.dev/install/" - exit 1 - fi - - # Check if docker is running - if ! docker info &> /dev/null; then - print_error "Docker is not running. Please start Docker first." - exit 1 - fi - - # Check if cEOS image exists - if ! docker images | grep -q "ceos.*4.35.0"; then - print_warning "cEOS 4.35.0 image not found." - print_info "Please import the cEOS image first:" - print_info " docker import cEOS64-lab-4.35.0F.tar ceos:4.35.0" - read -p "Do you want to continue anyway? (y/N) " -n 1 -r - echo - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - exit 1 - fi - fi - - print_info "All prerequisites met!" -} - -# Function to deploy the lab -deploy_lab() { - print_info "Deploying Arista EVPN-VXLAN lab..." - - # Deploy with containerlab - if containerlab deploy -t evpn-lab.clab.yml; then - print_info "Lab deployed successfully!" - echo "" - print_info "Lab Details:" - containerlab inspect -t evpn-lab.clab.yml - echo "" - print_info "Access devices using:" - print_info " ssh admin@" - print_info " Default password: admin" - echo "" - print_info "Or use docker exec:" - print_info " docker exec -it clab-arista-evpn-fabric-leaf1 Cli" - else - print_error "Deployment failed!" - exit 1 - fi -} - -# Function to display status -show_status() { - print_info "Lab Status:" - containerlab inspect -t evpn-lab.clab.yml -} - -# Function to destroy the lab -destroy_lab() { - print_warning "This will destroy the entire lab!" - read -p "Are you sure? (y/N) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - print_info "Destroying lab..." - containerlab destroy -t evpn-lab.clab.yml --cleanup - print_info "Lab destroyed successfully!" - else - print_info "Destruction cancelled." - fi -} - -# Function to restart the lab -restart_lab() { - print_info "Restarting lab..." - destroy_lab - if [[ $? -eq 0 ]]; then - sleep 2 - deploy_lab - fi -} - -# Function to show device access info -show_access_info() { - print_info "Device Access Information:" - echo "" - echo "SSH Access (password: admin):" - echo " Spines:" - echo " ssh admin@clab-arista-evpn-fabric-spine1" - echo " ssh admin@clab-arista-evpn-fabric-spine2" - echo "" - echo " Leafs:" - for i in {1..8}; do - echo " ssh admin@clab-arista-evpn-fabric-leaf$i" - done - echo "" - echo "Docker Exec:" - echo " docker exec -it clab-arista-evpn-fabric- Cli" - echo "" - echo "Management IPs:" - containerlab inspect -t evpn-lab.clab.yml | grep -E "spine|leaf" | awk '{print $2, $6}' -} - -# Function to run basic validation -validate_lab() { - print_info "Running basic validation..." - - # Check if containers are running - if ! docker ps | grep -q "clab-arista-evpn-fabric"; then - print_error "No lab containers found. Deploy the lab first." - exit 1 - fi - - print_info "Checking BGP EVPN status on spine1..." - docker exec clab-arista-evpn-fabric-spine1 Cli -p 15 -c "show bgp evpn summary" - - print_info "Checking VXLAN status on leaf1..." - docker exec clab-arista-evpn-fabric-leaf1 Cli -p 15 -c "show vxlan vtep" - - print_info "Checking MLAG status on leaf1..." - docker exec clab-arista-evpn-fabric-leaf1 Cli -p 15 -c "show mlag" - - print_info "Validation complete! Check output above for any issues." -} - -# Main menu -show_menu() { - echo "" - echo "=========================================" - echo " Arista EVPN-VXLAN Lab Manager" - echo "=========================================" - echo "1. Deploy Lab" - echo "2. Show Status" - echo "3. Destroy Lab" - echo "4. Restart Lab" - echo "5. Show Access Info" - echo "6. Validate Lab" - echo "7. Exit" - echo "=========================================" -} - -# Main script -main() { - # Check prerequisites first - check_prerequisites - - # If arguments provided, execute directly - if [ $# -gt 0 ]; then - case "$1" in - deploy) - deploy_lab - ;; - status) - show_status - ;; - destroy) - destroy_lab - ;; - restart) - restart_lab - ;; - access) - show_access_info - ;; - validate) - validate_lab - ;; - *) - print_error "Unknown command: $1" - echo "Usage: $0 {deploy|status|destroy|restart|access|validate}" - exit 1 - ;; - esac - exit 0 - fi - - # Interactive menu - while true; do - show_menu - read -p "Select option [1-7]: " choice - case $choice in - 1) - deploy_lab - ;; - 2) - show_status - ;; - 3) - destroy_lab - ;; - 4) - restart_lab - ;; - 5) - show_access_info - ;; - 6) - validate_lab - ;; - 7) - print_info "Exiting..." - exit 0 - ;; - *) - print_error "Invalid option. Please select 1-7." - ;; - esac - - echo "" - read -p "Press Enter to continue..." - done -} - -# Run main function -main "$@"