Net-Manage is a Python-based project that serves as a framework for other applications. It is extensible and functional, making it easy to import some or all of its functionality into other scripts and applications.
It primarily focuses on collecting data and integrating disparate systems. It is designed for usage on Ubuntu 20.04, Python 3.8-3.10, and requires build-essentials. While it has been known to work on Mac and Windows (using Windows Subsystem for Linux), these platforms are not officially supported.
Here's a quick guide to get you started:
sudo apt upgrade
sudo apt install git build-essential -y
Clone the repository
Using git, you can clone the repository to your local machine:
git clone https://github.com/InsightSSG/Net-Manage.git
Create a Python virtual environment
Navigate to the project folder and create a new virtual environment. You can do this with either venv
or miniconda
.
Using venv
:
cd Net-Manage
python3 -m venv venv
Using miniconda
:
cd Net-Manage
conda create --name myenv
Activate the virtual environment
venv
, use the following command:source venv/bin/activate
miniconda
, use the following command:conda activate myenv
Install the requirements
The required Python libraries can be installed using pip:
pip install -r requirements.txt
Run Jupyter Lab
Start Jupyter Lab using the following command:
jupyter-lab
Configure Environment Variables
For non-Streamlit files:
Environment variables are stored in the .env file. Simply rename .env_example
to .env
. If you do not need to use a variable, leave it empty.
For Streamlit files:
Environment variables for Streamlit files are stored in .streamlit/secrets.toml
. The formatting is largely the same. Simply re-name .secrets/secrets_example.tml
to .secrets/secrets.toml
and enter any variables you need to use.
Open Net-Manage.ipynb
In the Jupyter Lab interface, navigate to the location of net-manage.ipynb
file and click to open it.
For a comprehensive guide on the usage and functionalities of Net-Manage, refer to our Full Documentation in the html directory of the repository.
There is no shortage of frameworks, APIs, tools and scripts for managing IT networks. However, the fact that people must continually create more indicates that current strategies for automation are not sufficient. We feel there are three main problems in the tooling ecosystem:
The Net-Manage framework is designed to solve those problems. It is:
There is no catch. We need the same tools that are customers need. Open source products allow us to move rapidly. We use them, so this is our way of giving back to the community.
I had the good fortune of working at Microsoft from 2014 - 2021. I was in Global Network Services until 2015, when my team moved into Azure.
In the early days of Azure, our tooling was a mess. By the time I left in 2021, we had a fully automatable network. The only times we needed to make changes manually were for break/fix (and we always tried to find ways to automate the fix after the issue was mitigated).
We were doing it on our own. The tooling ecosystem that exists today just wasn't available. We made a lot of mistakes. I tried to learn from them. In light of that, I followed this philosophy when creating Net-Manage:
Net-Manage is designed and tested for usage on Ubuntu 20.04 with Python 3.8-3.10. However, it has been known to work on other platforms such as MacOS and Windows (using the Windows Subsystem for Linux), but please note that these are not officially supported platforms. For any issues encountered during installation or usage on unsupported platforms, we will not be able to provide any official support.
For further queries, please raise an issue on the repository.