官方文档:
https://netbox.readthedocs.io/en/stable/python
官方定义:netbox是一个被设计用于网络自动化的基础资源模型化应用。git
NetBox is an infrastructure resource modeling (IRM) application designed to empower network automation.
是基于Django开发的,经过集成napalm库能够实现一些网络自动化等场景。github
参考文档:
https://netbox.readthedocs.io/en/stable/installation/redis
sudo yum install -y postgresql-server libpq-devel sudo postgresql-setup --initdb
PostgreSQL 版本要大于等于9.6
安装好后建立netbox数据库和netbox用户:sql
psql postgres
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD '你的密码';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \qshell
$ psql --username netbox --password --host localhost netbox数据库
* 2.安装redis ```shell sudo yum install -y redis sudo systemctl start redis sudo systemctl enable redis # 测试redis是否正常 redis-cli ping
sudo yum install -y gcc python36 python36-devel python3-pip libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config
wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gzdjango
ALLOWED_HOSTS = ['*']markdown
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'netbox', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}网络
REDIS = {
'tasks': {
'HOST': 'localhost', # Redis server
'PORT': 6379, # Redis port
'PASSWORD': '', # Redis password (optional)
'DATABASE': 0, # Database ID
'SSL': False, # Use SSL (optional)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1, # Unique ID for second database
'SSL': False,
}
}
SECRET_KEY:
须要先运行脚本生成python3 ../generate_secret_key.py
SECRET_KEY = 'auxq&g_g!yQnPSTCLb9Zbjdd2S^-Gm6gkU=TKu7aSxt1H70vg-'
4.迁移数据库 ```shell # 进入有manage.py的目录中,运行以下命令 python manage.py migrate
5.建立netbox管理员帐号
# 进入有manage.py的目录中,运行以下命令 python manage.py createsuperuser # 根据提示输入用户名和密码
6.测试运行netbox
python3 manage.py runserver 0.0.0.0:8000 --insecure
7.在实际的生产环境中,建议使用UWSGI来部署
8.界面截图
9.若是要运行脚本后实时获取设备的一些信息,须要安装napalm
pip install napalm
而后录入相关的设备,填写设备的帐号名密码,关联platform,而后点击查看设备时就能够获取一些状态信息来,由于没有搭建网络设备的环境,这个步骤先不演示:
根据参考文档,建立相应的目录和文件,在文件中实现对应的变量便可。
参考文档:
https://netbox.readthedocs.io/en/stable/plugins/
https://netbox.readthedocs.io/en/stable/plugins/development/
https://docs.djangoproject.com/en/3.2/intro/reusable-apps/
你们若是Netbox相关的使用心得、或者其余好用的CMDB能够一块儿交流交流,共同窗习进步!