contra

command module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2018 License: MIT Imports: 1 Imported by: 0

README

Contra

AJA's network device configuration tracker software built using GoLang. Initially focused on routers and switches, but expected to track all network device configurations.

As the MIT license states, use this code at your own risk. It has been running smoothly for months on end without any issues, but something could always go wrong.

Features
  • Automated configuration tracking for all supported network devices.
  • Tracks changes in GIT, plus email notifications for changes.
  • Email notifications when a device is unable to be backed up.

Installation

git clone git@github.com:aja-video/contra.git
make first

After the initial build, make run or make then execute ./bin/contra will work.

Configuration

Copy the contra.example.conf file to contra.conf and configure.

Encrypt Passwords

Note, all passwords are encrypted using an EncryptKey on the first run. If an EncryptKey is not set, one will be randomly generated. While the encryption key is in the conf file, this makes it so the passwords are not stored as plain text.

We do this to prevent inadvertent password leak from someone standing behind you. As well as to make it a little harder for someone who stumbles upon the file to determine the passwords. Of course, with the source code, they can easily determine how to decrypt the passwords.

Set EncryptPasswords = false to disable this behavior.

Git Push

By default, changes will be committed to the defined workspace folder.

You can set up the workspace folder's git repo with a remote origin, and set GitPush to true.

By default, GitAuth is also set to true, and will use .ssh/id_rsa private keypair to attempt the push. You can set GitAuth to false and it is effectively a git push from the workspace folder.

Dependency Management

Supported Devices

Current
  • pfSense
  • Cisco Small Business
  • Vyatta
  • HP/Procurve
  • HP/Comware
    • For locked down devices use UnlockPass in the device configuration to unlock xtd-cli-mode
Soon
  • Cisco
  • Juniper (JunOS)
  • Arista
Someday
  • http
  • custom scripting

Device Configuration

If a password, or any field in the config file, contains a # or ; character be sure to properly quote the password with either a backtick ` or a set of three double-quotes """ for example, if your password is Some#pass;word you will need one of the following formats:

Pass=`Some#pass;word`
Pass="""Some#pass;word"""

Building

Contributing

If you have a device that is not yet supported, please review on of the existing devices and consider making a pull request with support for your device. Alternatively, you can create an issue and provide logs showing the steps necessary to pull the configs, and we can try to add support for the device.

Be sure to make test to run fmt, vet, lint, and tests before each commit.

License

Contra is licensed under the MIT License

Acknowledgements

  • This project was inspired by Splendid, Sweet, and Rancid.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
src

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL