Installing Arrcus ArcOS

netlab runs Arrcus ArcOS as a containerlab-provisioned device. ArcOS is a native containerlab kind (arrcus_arcos) – no vrnetlab packaging – and only the clab provider is supported (no Vagrant box).

Container image

ArcOS is a commercial NOS; there is no public image. Obtain an ArcOS container image and tag it as the device expects (or point clab.image at your own tag):

defaults.devices.arcos.clab.image: arcos:8.2.1A.P2

The device sets clab kind: arrcus_arcos. Verified against the 8.2.1A.P2 container image.

First-boot bootstrap

The tested image boots with SSH, NETCONF, and gNMI disabled, and ArcOS refuses to enable interfaces until the factory-default admin-user password is changed. netlab handles both automatically with the native netlab_start_exec group variable (containerlab’s post-start exec:): it enables ssh-server, sets the admin-user password, and creates an AAA user before any configuration is deployed. No manual steps are required.

Configuration deployment

ArcOS uses netlab’s native containerlab “sh” config mode (Linux configuration scripts): each configuration module is rendered into /config/netlab/NN-<module>.sh with a #!/config/netlab/netlab-config.sh shebang and deployed with docker exec, which hands the rendered config to the mapped wrapper netsim/templates/provider/clab/arcos/netlab-config.j2 to load through confd_cli (load merge / commit). No Ansible is used to deploy configuration – this is the same mapped-script pattern Juniper cRPD uses. ansible_connection: docker is retained only for the validation/collect path.

ArcOS also ships the official arrcus.arcos network_cli collection (the project-recommended interactive model), but every published version hangs against this image; see the ArcOS caveats. No extra Ansible collection is required.

Supported configuration modules

initial, ospf (v2/v3), bgp, isis, vrf (+ospf/isis/bgp), vlan, lag, gateway (VRRP), dhcp/relay, bfd, routing (static/prefix-set/policy), mpls (LDP), sr (SR-MPLS via IS-IS), srv6, vxlan, and evpn (L2VNI). See netsim/devices/arcos.yml features: for the authoritative list; support level is best-effort (see caveats).

VLANs use the native switched-VLAN model (vlan <id> plus interface ... ethernet switched-vlan), and SVIs are named vlan<id>. Routing-protocol instances inside a VRF are tagged with the VRF name, because a protocol instance tag is a single global namespace across every network instance on this build.

Validation

netlab validate reads ArcOS device state over the same docker-exec path used to deploy config (show <path> | display json | confd_cli, parsed as OpenConfig JSON by netsim/validate/**/arcos.py) – netlab’s standard device-side show-command validation, with no SSH/NETCONF/gNMI and no ansible validation action. ArcOS is exercised with netlab’s regular integration tests.