Netbox 開源的基於python的網絡CMDB

Netbox定義

官方文檔:
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

 

Netbox安裝(CentOS環境爲例)

參考文檔:
https://netbox.readthedocs.io/en/stable/installation/redis

  • 1.安裝pgsql
    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
  • 3.配置netbox
    sudo yum install -y gcc python36 python36-devel python3-pip libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config

1.下載netbox代碼

wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gzdjango

2.配置netbox選項(netbox/netbox/configuration.py)

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.界面截圖
image.png

9.若是要運行腳本後實時獲取設備的一些信息,須要安裝napalm

pip install napalm

而後錄入相關的設備,填寫設備的帳號名密碼,關聯platform,而後點擊查看設備時就能夠獲取一些狀態信息來,由於沒有搭建網絡設備的環境,這個步驟先不演示:
image.png

 

支持經過Plugin的方式進行擴展

根據參考文檔,建立相應的目錄和文件,在文件中實現對應的變量便可。
參考文檔:
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能夠一塊兒交流交流,共同窗習進步!

相關文章
相關標籤/搜索