/cidr

Cidr Is not as Dumb as Rancid

Primary LanguagePython

Tweet this Follow me on twitter

NOTES

This is an early stage.

You can check the manpage.

More documentation has to come. For now you have to read the code. Sorry guys!

install exscript

You can check my Launchpad page to get exscript debian package. Please note that this package has been generated for trusty and might also work on other distos. Let me know if this works for you.

Basicaly you have to put in your /etc/apt/sources.list:

deb http://ppa.launchpad.net/renard0/utils/ubuntu trusty main 

and run as root:

apt-get update
apt-get install exscript

Dependancy

Run

Configure cidr.yml file with devices and run:

./cidr -v --config cidr.yml backup-config -t 64

Supported devices

Here is a list of devices on witch cidr has been successfuly run. Some other may work as well. Please let me know if you have other working devices.

  • Cisco

    • 2800 Series
    • 7300 Series
    • 7600 Series
    • ASR9K Series
    • ASA Series
    • C2960X Series
    • UC520 Series
  • Dell

    • PowerConnect M6220
  • Foundry

    • MLX NetIron
    • FLS FLS-48G
  • Juniper

    • MX80
    • Ex4550 Series
  • Oracle

    • Acme Packet Net-Net 3820 SBC

Please note that for some devices (such as Acme Packet) The configuration might not be reimported as it.

Known issues

  • RequirementParseError: Invalid requirement, parse error at "''"

In some environment you may experience errors like:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Exscript/workqueue/job.py", line 78, in run
    self.function(self)
  File "/usr/local/lib/python2.7/dist-packages/Exscript/queue.py", line 101, in _wrapped
    conn.connect(host.get_address(), host.get_tcp_port())
  File "/usr/local/lib/python2.7/dist-packages/Exscript/protocols/protocol.py", line 609, in connect
    return self._connect_hook(self.host, port)
  File "/usr/local/lib/python2.7/dist-packages/Exscript/protocols/ssh2.py", line 299, in _connect_hook
    self.client = self._paramiko_connect()
  File "/usr/local/lib/python2.7/dist-packages/Exscript/protocols/ssh2.py", line 162, in _paramiko_connect
    t.start_client()
  File "/usr/lib/python2.7/dist-packages/paramiko/transport.py", line 493, in start_client
    raise e
RequirementParseError: Invalid requirement, parse error at "''"

This happens randomly without any particular reason. This seems to be related to a paramiko, pyca, packaging or setuptools bug in multi-threading mode. See:

The best way is to reduce the number of threads.