Files
projet-vxlan-automation/documentation/INSTALLATION.md
2023-10-08 16:22:14 +02:00

4.6 KiB
Raw Blame History

Table of Contents

  1. Installing ContainerLab
  2. Installing vrnetlab
  3. Installing Docker

Installing ContainerLab

ContainerLab can be installed using the installation script that detects the operating system type and installs the appropriate package:

# download and install the latest version (may require sudo)
bash -c "$(curl -sL https://get.containerlab.dev)"

# with wget
bash -c "$(wget -qO - https://get.containerlab.dev)"

Installing vrnetlab

Vrnetlab places a VM inside a container and makes it executable as if it were a container image.
To do this, vrnetlab provides a set of scripts that build the container image from a VM disk provided by the user.

# update and install dependencies
sudo apt update
sudo apt -y install python3-bs4 sshpass make
sudo apt -y install git

# move to /opt and clone the project
cd /opt && sudo git clone https://github.com/hellt/vrnetlab

# optional: change the directory permissions
sudo chown -R $USER:$USER vrnetlab

Installing Docker

This is the containerization engine used by ContainerLab.

# Update and install dependencies
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# To be able to execute docker with the current user
sudo usermod -aG docker $USER

Images installation

Arista cEOS

To download and install the arista cEOS image, you need to be registered to arista.com.
Once you created an account, please logged in and down the cEOS docker images.

To add this new image to docker, please use the docker CLI command :

docker import cEOS-lab-4.30.3M.tar ceos:4.30.3M

Cisco N9Kv

Ciscos N9Kv is also available for free (again, locked behind an account registration).
Please, download the qcow2 image and move it to the vrnetlab/n9kv folder :

➜  n9kv git:(master) pwd
/opt/vrnetlab/n9kv
➜  n9kv git:(master) ls -l
total 1931856
drwxr-xr-x 2 root root       4096  8 oct.  13:44 docker
-rw-r--r-- 1 root root        508  8 oct.  13:44 Makefile
-rwxr--r-- 1 root root 1978204160 14 mai    2022 nxosv.10.2.3.qcow2
-rw-r--r-- 1 root root        585  8 oct.  13:44 README.md

Be sure to use the "n9kv" folder and not the "nxos" folder - the "nxos" folder is for the older titanium images. Once the image is copied here, trigger "make" to build the docker image for this

➜  n9kv git:(master) sudo make                                
for IMAGE in nxosv.10.2.3.qcow2; do \
        echo "Making $IMAGE"; \
        make IMAGE=$IMAGE docker-build; \
done
Making nxosv.10.2.3.qcow2
make[1] : on entre dans le répertoire « /opt/vrnetlab/n9kv »
rm -f docker/*.qcow2* docker/*.tgz* docker/*.vmdk* docker/*.iso
Building docker image using nxosv.10.2.3.qcow2 as vrnetlab/vr-n9kv:10.2.3
cp ../common/* docker/
make IMAGE=$IMAGE docker-build-image-copy
make[2] : on entre dans le répertoire « /opt/vrnetlab/n9kv »
cp nxosv.10.2.3.qcow2* docker/
make[2] : on quitte le répertoire « /opt/vrnetlab/n9kv »
(cd docker; docker build --build-arg http_proxy= --build-arg https_proxy= --build-arg IMAGE=nxosv.10.2.3.qcow2 -t vrnetlab/vr-n9kv:10.2.3 .)
[+] Building 96.9s (10/10) 
FINISHED
docker:default

[...]

 => [internal] load build definition from Dockerfile
make[1] : on quitte le répertoire « /opt/vrnetlab/n9kv »

Now you should see images available to use :

➜  n9kv git:(master) sudo docker images 
REPOSITORY         TAG       IMAGE ID       CREATED         SIZE
vrnetlab/vr-n9kv   9.3.9     75c3c348b49f   48 seconds ago  2.43GB
ceos               4.30.3M   63870e68ff8d   2 hours ago     1.95GB

Sources