Le cEOS-lab d'Arista Networks a été précédemment décrit ici, mais un article pour démarrer plusieurs cEOS-lab en utilisant docker-compose est décrit. Je ne l'ai pas fait, alors je vais le décrire ici.
La description est basée sur l'hypothèse que vous avez lu l'article précédent. De plus, comme le contenu de cette heure est décrit dans Network CI / CD Part1 - Building network topologies with Docker and cEOS-lab in EOS Central of Arista (user registration required), Je pense que vous pouvez faire la même chose en le regardant.
Définissez les informations de configuration du cEOS que vous souhaitez démarrer dans le fichier docker-compose.yml.
version: '3'
services:
ceos1:
hostname: ceos1
container_name: ceos1
image: "ceos:4.24.2.2F"
command: /sbin/init systemd.setenv=INTFTYPE=eth systemd.setenv=ETBA=1 systemd.setenv=SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 systemd.setenv=CEOS=1 systemd.setenv=EOS_PLATFORM=ceoslab syste
md.setenv=container=docker
privileged: true
environment:
INTFTYPE: eth
ETBA: 1
SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT: 1
CEOS: 1
EOS_PLATFORM: ceoslab
container: docker
networks:
default:
net1:
net2:
ceos2:
hostname: ceos2
container_name: ceos2
image: "ceos:4.24.2.2F"
command: /sbin/init systemd.setenv=INTFTYPE=eth systemd.setenv=ETBA=1 systemd.setenv=SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 systemd.setenv=CEOS=1 systemd.setenv=EOS_PLATFORM=ceoslab syste
md.setenv=container=docker
privileged: true
environment:
INTFTYPE: eth
ETBA: 1
SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT: 1
CEOS: 1
EOS_PLATFORM: ceoslab
container: docker
networks:
default:
net1:
net2:
networks:
net1:
net2:
Démarrez le conteneur et vérifiez.
docker-compose up -d
Creating network "docker-compose-test_default" with the default driver
Creating network "docker-compose-test_net1" with the default driver
Creating network "docker-compose-test_net2" with the default driver
Creating ceos1 ... done
Creating ceos2 ... done
docker-compose ps
Name Command State Ports
------------------------------------------------------
ceos1 /sbin/init systemd.setenv= ... Up
ceos2 /sbin/init systemd.setenv= ... Up
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11fb4380119d ceos:4.24.2.2F "/sbin/init systemd.…" 12 minutes ago Up 12 minutes ceos2
d578a8077d37 ceos:4.24.2.2F "/sbin/init systemd.…" 12 minutes ago Up 12 minutes ceos1
docker network ls
NETWORK ID NAME DRIVER SCOPE
b61604aed6bf bridge bridge local
f2cb0b079080 docker-compose-test_default bridge local
dab572f8e996 docker-compose-test_net1 bridge local
9e5f6c73dafc docker-compose-test_net2 bridge local
ec472d1f98ef host host local
ad77eaaccb62 none null local
Utilisez la commande suivante pour supprimer le conteneur.
docker-compose down
Stopping ceos2 ... done
Stopping ceos1 ... done
Removing ceos2 ... done
Removing ceos1 ... done
Removing network docker-compose-test_default
Removing network docker-compose-test_net1
Removing network docker-compose-test_net2
Pour le définir, démarrez-le avec docker-compose, puis utilisez la commande suivante.
docker-compose exec ceos1 Cli
docker-compose exec ceos2 Cli
Après avoir entré avec la commande ci-dessus, vous pouvez le définir comme si vous touchaient le commutateur physique Arista.
ceos1>enable
* Il y a des cas où le nom d'hôte est déjà défini comme ceos1 au moment de la connexion et des cas où le nom d'hôte est localhost et le paramètre par défaut, utilisez donc la commande enable.
Lorsqu'il est entré, le nom d'hôte revient à localhost. La cause n'est pas bien comprise ...
localhost#
localhost#
localhost#
localhost#show running-config
! Command: show running-config
! device: localhost (cEOSLab, EOS-4.24.2.2F-18884008.42422F (engineering build))
!
transceiver qsfp default-mode 4x10G
!
service routing protocols model ribd
!
agent Bfd shutdown
agent PowerManager shutdown
agent LedPolicy shutdown
agent Thermostat shutdown
agent PowerFuse shutdown
agent StandbyCpld shutdown
agent LicenseManager shutdown
!
spanning-tree mode mstp
!
no aaa root
!
interface Ethernet1
!
interface Ethernet2
!
no ip routing
!
end
Si le modèle de configuration de test semble avoir été décidé à l'avance, au lieu de démarrer cEOS-lab seul, J'ai trouvé pratique d'utiliser docker-compose. J'espère qu'il pourra être appliqué dans les affaires. De plus, comme partie douloureuse, lorsque des problèmes surviennent, vous devez réussir à isoler cEOS-lab par vous-même, donc J'ai pensé qu'il était nécessaire d'améliorer les compétences du docker lui-même, par exemple en l'utilisant au cas par cas.