{"id":22832854,"url":"https://github.com/kiraum/madlabs","last_synced_at":"2025-09-23T03:47:32.193Z","repository":{"id":266928061,"uuid":"899693969","full_name":"kiraum/madlabs","owner":"kiraum","description":"Experimentation without bias!","archived":false,"fork":false,"pushed_at":"2024-12-10T23:43:12.000Z","size":203,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-19T18:30:01.816Z","etag":null,"topics":["containerlab","lab","network"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiraum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-06T20:05:41.000Z","updated_at":"2024-12-26T19:55:35.000Z","dependencies_parsed_at":"2025-06-07T02:06:40.240Z","dependency_job_id":"7e224599-d6f1-4cdb-b5ab-8e27444949ba","html_url":"https://github.com/kiraum/madlabs","commit_stats":null,"previous_names":["kiraum/madlab","kiraum/madlabs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kiraum/madlabs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiraum%2Fmadlabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiraum%2Fmadlabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiraum%2Fmadlabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiraum%2Fmadlabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiraum","download_url":"https://codeload.github.com/kiraum/madlabs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiraum%2Fmadlabs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276512734,"owners_count":25655450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containerlab","lab","network"],"created_at":"2024-12-12T21:09:59.542Z","updated_at":"2025-09-23T03:47:32.142Z","avatar_url":"https://github.com/kiraum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Network Lab Environment Setup Guide\n\n## Prerequisites\n\n1. Clone the repository:\n```bash\ngit clone git@github.com:kiraum/madlabs.git\n```\n\n## Mac ARM/Apple Silicon Setup\nIf you're using a Mac with ARM architecture (M1/M2), set up Colima first:\n\n1. Install Colima:\n```bash\nbrew install colima\n```\n\n2. Create the environment:\n### ARM (if we don't set the desired arch, it will use the current one)\n```bash\ncolima start --memory 8 --cpu 4\n```\n### this was the best one so far for my use case\n```bash\ncolima start --arch x86_64 --memory 8 --cpu 4 --cpu-type Skylake-Server-v1,+ssse3\n```\n### list cpu-types\n```bash\nqemu-system-x86_64 -cpu help\n```\n\n3. Import cEOS image:\n### For 32-bit (recommended):\n```bash\nxz -d cEOS-lab-4.33.0F.tar.xz\ndocker import cEOS-lab-4.33.0F.tar ceos:4.33.0F\n```\n\n### For 64-bit (recommended):\n```bash\nxz -d cEOS64-lab-4.33.0F.tar.xz\ndocker import cEOS64-lab-4.33.0F.tar ceos:4.33.0F\n```\n\n## Environment Setup\n1. Start the environment:\n```bash\ndocker-compose up -d\ndocker-compose exec containerlab bash\n```\n\n## Lab Operations\n1. Navigate to quickstart lab:\n```bash\ncd labs/clab-quickstart\n```\n\n2. Deploy the lab:\n```bash\ncontainerlab deploy -t ceoslab.clab.yml\n```\n\n3. Inspect running containers:\n```bash\n# containerlab inspect -t ceoslab.clab.yml\nINFO[0000] Parsing \u0026 checking topology file: ceoslab.clab.yml\n╭──────────┬─────────────────────────────────┬─────────┬────────────────╮\n│   Name   │            Kind/Image           │  State  │ IPv4/6 Address │\n├──────────┼─────────────────────────────────┼─────────┼────────────────┤\n│ ceos-01  │ ceos                            │ running │ 172.20.20.4    │\n│          │ ceos:4.33.0F                    │         │ N/A            │\n├──────────┼─────────────────────────────────┼─────────┼────────────────┤\n│ ceos-02  │ ceos                            │ running │ 172.20.20.5    │\n│          │ ceos:4.33.0F                    │         │ N/A            │\n├──────────┼─────────────────────────────────┼─────────┼────────────────┤\n│ linux-01 │ linux                           │ running │ 172.20.20.3    │\n│          │ ghcr.io/hellt/network-multitool │         │ N/A            │\n├──────────┼─────────────────────────────────┼─────────┼────────────────┤\n│ linux-02 │ linux                           │ running │ 172.20.20.2    │\n│          │ ghcr.io/hellt/network-multitool │         │ N/A            │\n╰──────────┴─────────────────────────────────┴─────────┴────────────────╯\n```\n\n4. Access devices:\nDefault SSH access:\n```bash\nssh admin@ceos-01\n```\n\n### If you face panic or need to restart the lab:\n```bash\ncontainerlab deploy -t ceoslab.clab.yml -c\n```\n\n## Device Access Examples\n### Arista cEOS\n\n* CLI access:\n```bash\ndocker exec -it ceos-01 Cli\n```\n\n* Bash access:\n```bash\ndocker exec -it ceos-01 bash\n```\n\n### Nokia SR Linux\n\n* CLI access:\n```bash\ndocker exec -it srl-01 sr_cli\n```\n\n* Bash access:\n```bash\ndocker exec -it srl-01 bash\n```\n\n## Cleanup\nTo destroy the lab environment:\n```bash\ncontainerlab destroy -t ceoslab.clab.yml\n```\nAnd to cleanup:\n```bash\ncontainerlab destroy -t ceoslab.clab.yml --cleanup\n```\n\n## Enjoy\n```bash\n# ssh admin@ceos-01\nWarning: Permanently added 'ceos-01' (ED25519) to the list of known hosts.\n(admin@ceos-01) Password:\nLast login: Sun Dec  8 20:59:51 2024 from 172.20.20.1\nceos\u003e\nceos\u003e\nceos\u003eshow version\nArista cEOSLab\nHardware version:\nSerial number:\nHardware MAC address: 001c.732d.19a0\nSystem MAC address: 001c.732d.19a0\n\nSoftware image version: 4.33.0F-39050855.4330F (engineering build)\nArchitecture: i686\nInternal build version: 4.33.0F-39050855.4330F\nInternal build ID: ff38b52c-4b4f-4a3f-b591-ef310b5ac8ca\nImage format version: 1.0\nImage optimization: None\n\nKernel version: 6.8.0-47-generic\n\nUptime: 6 minutes\nTotal memory: 8125764 kB\nFree memory: 6657088 kB\n```\n\nif you want to check your topology:\n```bash\n# containerlab graph -t ceoslab.clab.yml\nWARN[0000] Attribute \"ipv4_subnet\" is deprecated and will be removed in the future. Change it to \"ipv4-subnet\"\nINFO[0000] Parsing \u0026 checking topology file: ceoslab.clab.yml\nINFO[0000] Serving topology graph on http://0.0.0.0:50080\n```\n\nOpen a browser and navigate to http://0.0.0.0:50080:\n![Network Topology](labs/clab-base/images/topology.png \"Network Topology Diagram\")\n\n## Script usage examples\n```bash\n# python3 scripts/mgmt.py\nusage: mgmt.py [-h] {deploy,info} ...\n\npositional arguments:\n  {deploy,info}  Commands\n    deploy       Deploy configuration\n    info         Get device information\n\noptions:\n  -h, --help     show this help message and exit\n```\n\n### get facts\n```bash\n# python3 scripts/mgmt.py info --limit ceos-01\nget_device_info*****************************************************************\n* ceos-01 ** changed : False ***************************************************\nvvvv get_device_info ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\n---- Getting info from ceos-01 ** changed : False ------------------------------ INFO\n{ 'facts': { 'fqdn': 'ceos-01',\n             'hostname': 'ceos-01',\n             'interface_list': ['Ethernet1', 'Ethernet2', 'Management0'],\n             'model': 'cEOSLab',\n             'os_version': '4.33.0F-39050855.4330F',\n             'serial_number': '',\n             'uptime': 5461.910061120987,\n             'vendor': 'Arista'},\n  'interfaces': { 'Ethernet1': { 'description': 'test69',\n                                 'is_enabled': True,\n                                 'is_up': True,\n                                 'last_flapped': 1733867941.7668226,\n                                 'mac_address': 'AA:C1:AB:C6:B9:14',\n                                 'mtu': 9194,\n                                 'speed': 1000.0},\n                  'Ethernet2': { 'description': '',\n                                 'is_enabled': True,\n                                 'is_up': True,\n                                 'last_flapped': 1733867941.752524,\n                                 'mac_address': 'AA:C1:AB:44:88:37',\n                                 'mtu': 9194,\n                                 'speed': 1000.0},\n                  'Management0': { 'description': '',\n                                   'is_enabled': True,\n                                   'is_up': True,\n                                   'last_flapped': 1733867834.1633537,\n                                   'mac_address': '02:42:AC:14:14:04',\n                                   'mtu': 1500,\n                                   'speed': 1000.0}}}\n^^^^ END get_device_info ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n```\n\n### deploy config (-c to deploy, without only diff)\n```bash\n# python3 scripts/mgmt.py deploy --limit ceos-0* -c\ndeploy_network******************************************************************\n* ceos-01 ** changed : True ****************************************************\nvvvv deploy_network ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\n---- Configuring (replace) ceos-01! ** changed : True -------------------------- INFO\ninterface Ethernet1\n-   description test3\n+   description test69\n^^^^ END deploy_network ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n* ceos-02 ** changed : False ***************************************************\nvvvv deploy_network ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\n---- Configuring (replace) ceos-02! ** changed : False ------------------------- INFO\n^^^^ END deploy_network ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiraum%2Fmadlabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiraum%2Fmadlabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiraum%2Fmadlabs/lists"}