“Go ahead, pull it!”
Trigger is a Python framework and suite of tools for interfacing with network devices and managing network configuration and security policy. Trigger was designed to increase the speed and efficiency of network configuration management.
Trigger’s core device interaction utilizes the freely available Twisted event-driven networking engine. The libraries can connect to network devices by any available method (e.g. telnet, SSH), communicate with them in their native interface (e.g. Juniper JunoScript, Cisco IOS), and return output. Trigger is able to manage any number of jobs in parallel and handle output or errors as they return.
Trigger was created to facilitate rapid provisioning and automation of firewall policy change requests by Network Security. It has since expanded to cover all network device configuration.
The complexity of the network was increasing much more quickly than the amount of time we had to spend on administering it, both because AOL’s products and services were becoming more sophisticated and because we were continually expanding infrastructure. This pressure created a workload gap that had be filled with tools that increased productivity.
Pre-Trigger tools worked only for some common cases and required extensive knowledge of the network, and careful attention during edits and loads. Sometimes this resulted in a system-impacting errors, and it routine work more dangerous and unrewarding than it should have been.
With the high number of network devices on the AOL network Trigger has become invaluable to the performance and reliability of the AOL network infrastructure.
Trigger was originally originally written by the AOL Network Security team and is now maintained by the Network Engineering organization.
Once upon a time Trigger was actually called SIMIAN, a really bad acronym that stood for System Integrating Management of Individual Access to Networks. It has since outgrown its original purpose and can be used for any network hardware management operations, so we decided to ditch the acronym and just go with a name that more accurately hints at what it does.
Trigger currently supports devices manufactured by the following vendors:
This is a work in progress, but it’s not a bad start. Please have a look and give us feedback on how we can improve!
Please note that all documentation is written with users of Python 2.6 in mind. It’s safe to assume that Trigger will not work properly on Python versions earlier than Python 2.6.
For now, most of our documentation is automatically generated form the source code documentation, which is usually very detailed. As we move along, this will change, especially with regards to some of the more creative ways in which we use Trigger’s major functionality.
Trigger’s core API is made up of several components.
Coming Soon.
Once you’ve properly installed Trigger, you might want to know how to use it. Please have a look at the usage documentation!
You guessed it: Coming Soon.
Any hackers interested in improving Trigger (or even users interested in how Trigger is put together or released) please see the Trigger Development page. It contains comprehensive info on contributing, repository layout, our release strategy, and more.
If you’ve scoured the Usage and API documentation and still can’t find an answer to your question, below are various support resources that should help. Please do at least skim the documentation before posting tickets or mailing list questions, however!
The best way to get help with using Trigger is via the trigger-users mailing list (Google Group). We’ll do our best to reply promptly!
Trigger has an official Twitter account, @pytrigger, which is used for announcements and occasional related news tidbits (e.g. “Hey, check out this neat article on Trigger!”).
If you don’t do Twitter or mailing lists, please feel free to drop us an email at pytrigger@aol.com.
To file new bugs or search existing ones, please use the GitHub issue tracker, located at https://github.com/aol/trigger/issues.
IRC coming Soon™.
We will use GitHub’s built-in wiki located at https://github.com/aol/trigger/wiki.
Trigger is licensed under the Clear BSD License which is based on the BSD 3-Clause License, and adds a term expressly stating it does not grant you any patent licenses.
For the explicit details, please see the License page.