{"id":21636113,"url":"https://github.com/bigevilbeard/napalm_create","last_synced_at":"2025-07-09T23:32:55.508Z","repository":{"id":128721754,"uuid":"127878286","full_name":"bigevilbeard/napalm_create","owner":"bigevilbeard","description":"Intro to Napalm Devnet Create 2018","archived":false,"fork":false,"pushed_at":"2018-04-10T22:24:50.000Z","size":847,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-16T00:16:38.461Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bigevilbeard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-04-03T08:45:01.000Z","updated_at":"2018-10-02T15:35:23.000Z","dependencies_parsed_at":"2023-03-13T11:28:41.786Z","dependency_job_id":null,"html_url":"https://github.com/bigevilbeard/napalm_create","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bigevilbeard/napalm_create","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigevilbeard%2Fnapalm_create","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigevilbeard%2Fnapalm_create/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigevilbeard%2Fnapalm_create/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigevilbeard%2Fnapalm_create/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bigevilbeard","download_url":"https://codeload.github.com/bigevilbeard/napalm_create/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigevilbeard%2Fnapalm_create/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264505263,"owners_count":23618911,"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","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":[],"created_at":"2024-11-25T03:29:55.599Z","updated_at":"2025-07-09T23:32:55.486Z","avatar_url":"https://github.com/bigevilbeard.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  WS24 Intro to Napalm Devnet Create 2018\n\n## BYOD Requirements\nThis workshop introduces you to the network automation python module Naplam, and how it can be used for network automation.  \n\n## Objectives\n\nThis workshops gets you up-and-running with NAPALM in a Devnet Sandbox environment so you can see it in action in under an hour. We’ll cover the following:\n\n* What is Napalm\n* Installing the required tools\n* Napalm Command Line Tool\n* Manually applying configuration to the device using NAPALM\n* Driving NAPALM through Python code\n\n\n## Prerequisites\n\nFor this lab an ssh client is required to connect to the devbox. Using Mac/Linux directly use the OS native SSH client. For connecting using an SSH client such as PuTTY.\n\n```\nssh root@10.10.20.20 / password cisco123\n\n```\nPutty Download link \n```\nhttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html \n\n```\n\n\n# Create a new directory\n\n```\nmkdir napalm\ncd napalm\n```\n\n# Clone the Repo\n\n```\ngit clone https://github.com/bigevilbeard/napalm_create.git\n```\n\n```\ncd napalm_create\n```\n\n# Installing Napalm\n\nWhen installing Napalm installed the latest version 2.X as there were fundamental changes that happened between Naplm 1.X and 2.X.\nYou can install napalm with pip:\n\n```\npip install -r requirements.txt\n```\n\n```\n STUACLAR-M-R6EU:$ pip install napalm\nCollecting napalm\n  Downloading napalm-2.3.0.tar.gz (147kB)\n    100% |████████████████████████████████| 153kB 1.7MB/s\nCollecting future (from napalm)\n  Downloading future-0.16.0.tar.gz (824kB)\n    100% |████████████████████████████████| 829kB 1.1MB/s\nCollecting jtextfsm (from napalm)\n  Downloading jtextfsm-0.3.1.tar.gz\nCollecting jinja2 (from napalm)\n  Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB)\n    100% |████████████████████████████████| 133kB 2.3MB/s\nCollecting netaddr (from napalm)\n  Downloading netaddr-0.7.19-py2.py3-none-any.whl (1.6MB)\n    100% |████████████████████████████████| 1.6MB 714kB/s\nCollecting pyYAML (from napalm)\n  Downloading PyYAML-3.12.tar.gz (253kB)\n    100% |████████████████████████████████| 256kB 2.4MB/s\nCollecting pyeapi (from napalm)\n  Downloading pyeapi-0.8.2.tar.gz (133kB)\n    100% |████████████████████████████████| 143kB 4.2MB/s\nCollecting netmiko\u003e=1.4.3 (from napalm)\n  Downloading netmiko-2.1.0.tar.gz (70kB)\n    100% |████████████████████████████████| 71kB 2.4MB/s\nCollecting pyIOSXR\u003e=0.51 (from napalm)\n  Downloading pyIOSXR-0.52.tar.gz\nCollecting junos-eznc\u003e=2.1.5 (from napalm)\n  Downloading junos_eznc-2.1.7-py2.py3-none-any.whl (150kB)\n    100% |████████████████████████████████| 153kB 4.6MB/s\nCollecting pynxos (from napalm)\n  Downloading pynxos-0.0.3.tar.gz\nCollecting scp (from napalm)\n  Downloading scp-0.10.2-py2.py3-none-any.whl\nCollecting MarkupSafe\u003e=0.23 (from jinja2-\u003enapalm)\n  Downloading MarkupSafe-1.0.tar.gz\nCollecting paramiko\u003e=2.0.0 (from netmiko\u003e=1.4.3-\u003enapalm)\n  Downloading paramiko-2.4.0-py2.py3-none-any.whl (192kB)\n    100% |████████████████████████████████| 194kB 2.5MB/s\nCollecting pyserial (from netmiko\u003e=1.4.3-\u003enapalm)\n  Downloading pyserial-3.4-py2.py3-none-any.whl (193kB)\n    100% |████████████████████████████████| 194kB 4.1MB/s\nCollecting textfsm (from netmiko\u003e=1.4.3-\u003enapalm)\n  Downloading textfsm-0.3.2.tar.gz\nCollecting lxml\u003e=3.2.4 (from pyIOSXR\u003e=0.51-\u003enapalm)\n  Downloading lxml-4.1.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (8.7MB)\n    100% |████████████████████████████████| 8.7MB 155kB/s\nCollecting ncclient\u003e=0.5.3 (from junos-eznc\u003e=2.1.5-\u003enapalm)\n  Downloading ncclient-0.5.3.tar.gz (63kB)\n    100% |████████████████████████████████| 71kB 3.9MB/s\nCollecting six (from junos-eznc\u003e=2.1.5-\u003enapalm)\n  Downloading six-1.11.0-py2.py3-none-any.whl\nCollecting requests\u003e=2.7.0 (from pynxos-\u003enapalm)\n  Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)\n    100% |████████████████████████████████| 92kB 4.1MB/s\nCollecting pyasn1\u003e=0.1.7 (from paramiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB)\n    100% |████████████████████████████████| 71kB 3.5MB/s\nCollecting bcrypt\u003e=3.1.3 (from paramiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading bcrypt-3.1.4-cp27-cp27m-macosx_10_6_intel.whl (51kB)\n    100% |████████████████████████████████| 61kB 8.7MB/s\nCollecting cryptography\u003e=1.5 (from paramiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading cryptography-2.1.4-cp27-cp27m-macosx_10_6_intel.whl (1.5MB)\n    100% |████████████████████████████████| 1.5MB 884kB/s\nCollecting pynacl\u003e=1.0.1 (from paramiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading PyNaCl-1.2.1-cp27-cp27m-macosx_10_6_intel.whl (243kB)\n    100% |████████████████████████████████| 245kB 2.3MB/s\nRequirement already satisfied: setuptools\u003e0.6 in ./venv/lib/python2.7/site-packages (from ncclient\u003e=0.5.3-\u003ejunos-eznc\u003e=2.1.5-\u003enapalm)\nCollecting certifi\u003e=2017.4.17 (from requests\u003e=2.7.0-\u003epynxos-\u003enapalm)\n  Downloading certifi-2018.1.18-py2.py3-none-any.whl (151kB)\n    100% |████████████████████████████████| 153kB 3.7MB/s\nCollecting chardet\u003c3.1.0,\u003e=3.0.2 (from requests\u003e=2.7.0-\u003epynxos-\u003enapalm)\n  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)\n    100% |████████████████████████████████| 143kB 5.7MB/s\nCollecting idna\u003c2.7,\u003e=2.5 (from requests\u003e=2.7.0-\u003epynxos-\u003enapalm)\n  Downloading idna-2.6-py2.py3-none-any.whl (56kB)\n    100% |████████████████████████████████| 61kB 3.3MB/s\nCollecting urllib3\u003c1.23,\u003e=1.21.1 (from requests\u003e=2.7.0-\u003epynxos-\u003enapalm)\n  Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)\n    100% |████████████████████████████████| 133kB 5.7MB/s\nCollecting cffi\u003e=1.1 (from bcrypt\u003e=3.1.3-\u003eparamiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading cffi-1.11.5-cp27-cp27m-macosx_10_6_intel.whl (238kB)\n    100% |████████████████████████████████| 245kB 2.5MB/s\nCollecting enum34; python_version \u003c \"3\" (from cryptography\u003e=1.5-\u003eparamiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading enum34-1.1.6-py2-none-any.whl\nCollecting asn1crypto\u003e=0.21.0 (from cryptography\u003e=1.5-\u003eparamiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)\n    100% |████████████████████████████████| 102kB 2.9MB/s\nCollecting ipaddress; python_version \u003c \"3\" (from cryptography\u003e=1.5-\u003eparamiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading ipaddress-1.0.19.tar.gz\nCollecting pycparser (from cffi\u003e=1.1-\u003ebcrypt\u003e=3.1.3-\u003eparamiko\u003e=2.0.0-\u003enetmiko\u003e=1.4.3-\u003enapalm)\n  Downloading pycparser-2.18.tar.gz (245kB)\n    100% |████████████████████████████████| 256kB 2.9MB/s\nBuilding wheels for collected packages: napalm, future, jtextfsm, pyYAML, pyeapi, netmiko, pyIOSXR, pynxos, MarkupSafe, textfsm, ncclient, ipaddress, pycparser\n  Running setup.py bdist_wheel for napalm ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/4a/ef/3c/ef3eeb561a9dfa53ce530f964d8c3b2047d27b98d4879a7c6d\n  Running setup.py bdist_wheel for future ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/c2/50/7c/0d83b4baac4f63ff7a765bd16390d2ab43c93587fac9d6017a\n  Running setup.py bdist_wheel for jtextfsm ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/6b/22/6b/b3d6deb6364579238b8017909729b5c1bad7fcd8331b4067c4\n  Running setup.py bdist_wheel for pyYAML ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fc\n  Running setup.py bdist_wheel for pyeapi ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/98/a6/be/1910f4f4beec81424b4ede48457b0ae36e6f440d66d51f57bb\n  Running setup.py bdist_wheel for netmiko ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/c6/f0/68/2ee16b66bc1083a2f80f1a3b475c2d8c20cfc0908785b1f841\n  Running setup.py bdist_wheel for pyIOSXR ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/90/a8/e4/875d89a75cbb48d65af113c5e2927b50268da7cd8f8250443f\n  Running setup.py bdist_wheel for pynxos ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/84/ff/be/f0989593202f198e5872d1258df4956d9f6646d72fe22c2da1\n  Running setup.py bdist_wheel for MarkupSafe ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57\n  Running setup.py bdist_wheel for textfsm ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/92/7f/36/3dc4b8c2606a92d479b4f986c9deef9c0b293718dd83ace07c\n  Running setup.py bdist_wheel for ncclient ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/86/30/68/153d65b60834981c1960737f3f2de488574ba5355fe1329558\n  Running setup.py bdist_wheel for ipaddress ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/d7/6b/69/666188e8101897abb2e115d408d139a372bdf6bfa7abb5aef5\n  Running setup.py bdist_wheel for pycparser ... done\n  Stored in directory: /Users/stuaclar/Library/Caches/pip/wheels/95/14/9a/5e7b9024459d2a6600aaa64e0ba485325aff7a9ac7489db1b6\nSuccessfully built napalm future jtextfsm pyYAML pyeapi netmiko pyIOSXR pynxos MarkupSafe textfsm ncclient ipaddress pycparser\nInstalling collected packages: future, jtextfsm, MarkupSafe, jinja2, netaddr, pyYAML, pyeapi, pyasn1, six, pycparser, cffi, bcrypt, enum34, idna, asn1crypto, ipaddress, cryptography, pynacl, paramiko, scp, pyserial, textfsm, netmiko, lxml, pyIOSXR, ncclient, junos-eznc, certifi, chardet, urllib3, requests, pynxos, napalm\nSuccessfully installed MarkupSafe-1.0 asn1crypto-0.24.0 bcrypt-3.1.4 certifi-2018.1.18 cffi-1.11.5 chardet-3.0.4 cryptography-2.1.4 enum34-1.1.6 future-0.16.0 idna-2.6 ipaddress-1.0.19 jinja2-2.10 jtextfsm-0.3.1 junos-eznc-2.1.7 lxml-4.1.1 napalm-2.3.0 ncclient-0.5.3 netaddr-0.7.19 netmiko-2.1.0 paramiko-2.4.0 pyIOSXR-0.52 pyYAML-3.12 pyasn1-0.4.2 pycparser-2.18 pyeapi-0.8.2 pynacl-1.2.1 pynxos-0.0.3 pyserial-3.4 requests-2.18.4 scp-0.10.2 six-1.11.0 textfsm-0.3.2 urllib3-1.22\n```\n\n```\npip show napalm\nName: napalm\nVersion: 2.3.0\nSummary: Network Automation and Programmability Abstraction Layer with Multivendor support\nHome-page: https://github.com/napalm-automation/napalm\nAuthor: David Barroso, Kirk Byers, Mircea Ulinic\nAuthor-email: dbarrosop@dravetech.com, ping@mirceaulinic.net, ktbyers@twb-tech.com\nLicense: UNKNOWN\nLocation: /root/venv/python2/lib/python2.7/site-packages\nRequires: jinja2, future, junos-eznc, pyeapi, netaddr, pyYAML, pyIOSXR, jtextfsm, netmiko, pynxos, scp\n```\n\n\n\n# Napalm Help\n\n```\nnapalm --help\nusage: napalm [-h] [--user USER] [--password PASSWORD] --vendor VENDOR\n              [--optional_args OPTIONAL_ARGS] [--debug]\n              hostname {configure,call,validate} ...\n\nCommand line tool to handle configuration on devices using NAPALM.The script\nwill print the diff on the screen\n\npositional arguments:\n  hostname              Host where you want to deploy the configuration.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --user USER, -u USER  User for authenticating to the host. Default: user\n                        running the script.\n  --password PASSWORD, -p PASSWORD\n                        Password for authenticating to the host.If you do not\n                        provide a password in the CLI you will be prompted.\n  --vendor VENDOR, -v VENDOR\n                        Host Operating System.\n  --optional_args OPTIONAL_ARGS, -o OPTIONAL_ARGS\n                        String with comma separated key=value pairs passed via\n                        optional_args to the driver.\n  --debug               Enables debug mode; more verbosity.\n\nactions:\n  {configure,call,validate}\n    configure           Perform a configuration operation\n    call                Call a napalm method\n    validate            Validate configuration/state\n\nAutomate all the things!!!\n```\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigevilbeard%2Fnapalm_create","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigevilbeard%2Fnapalm_create","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigevilbeard%2Fnapalm_create/lists"}