(Tested on python v3.14)
I hopo starlight will become a single platform from which to automate various 'interactions' with devices / systems. At this moment in time, I am working on SSH interactions, but wish to extend interactions with API's and maybe even web-scraping.
NOTE This is a work in progress and anything can change at any moment!
- Python first development: The idea is to do everything in python. This means someone who knows python can immediately start working on it, and doesn't need to know anything else except perhaps the technology the module is interacting with.
- Re-use: Build modules that can be re-used by other modules.
- Chained operation: One interaction can feed another. A 'token' is used that is shared between interactions (modules) so the output of one module can be the input for one or more steps futher down the process.
- System/Device agnostic: Be able to interact with a multitude of systems.
- e.g.: In networking, when trying to get system information, try to connect using API, if this fails, try SSH, and if this fails, try SNMP.
- Use existing python modules: Be able to use any other python modules without penalty
- Normalization of information: When obtaining device information from different systems, try to keep keys and values normalized.
- Cater for threded operations: Be able to handle multi-threaded jobs
- Web front end: Simple front end that manages all components and potentially user input to execute tasks.
- Accountability: Log everything!
- Security: Use best security practices at all times
- Customizability: Always offer as many options as possible to the user
- Basic SSH interaction (incl via jump host)
- Threaded SSH interaction (bulk tasks)
- API interaction
- Threaded API interaction (bulk tasks)
- Database design for system
- Web UI
- Testing