scrapli_cfg
Documentation: https://scrapli.github.io/scrapli_cfg
Source Code: https://github.com/scrapli/scrapli_cfg
Examples: https://github.com/scrapli/scrapli_cfg/tree/master/examples
scrapli_cfg makes merging or replacing device configurations over Telnet or SSH easy, all while giving you the
scrapli behaviour you know and love.
Key Features:
- Easy: It's easy to get going with scrapli and scrapli-cfg -- check out the documentation and example links above,
and you'll be managing device configurations in no time.
- Fast: Do you like to go fast? Of course you do! All of scrapli is built with speed in mind, but if you really
feel the need for speed, check out the
ssh2
transport plugin to take it to the next level! All the "normal"
scrapli transport plugin goodness exists here in scrapli-cfg too! - Great Developer Experience: scrapli_cfg has great editor support thanks to being fully typed; that plus
thorough docs make developing with scrapli a breeze.
Requirements
MacOS or *nix1, Python 3.7+
scrapli_cfg's only requirements is scrapli
.
1 Although many parts of scrapli do run on Windows, Windows is not officially supported
Installation
pip install scrapli-cfg
See the docs for other installation methods/details.
A simple Example
from scrapli import Scrapli
from scrapli_cfg import ScrapliCfg
device = {
"host": "172.18.0.11",
"auth_username": "scrapli",
"auth_password": "scrapli",
"auth_strict_key": False,
"platform": "cisco_iosxe"
}
with open("myconfig", "r") as f:
my_config = f.read()
with Scrapli(**device) as conn:
cfg_conn = ScrapliCfg(conn=conn)
cfg_conn.prepare()
cfg_conn.load_config(config=my_config, replace=True)
diff = cfg_conn.diff_config()
print(diff.side_by_side_diff)
cfg_conn.commit_config()
cfg_conn.cleanup()