參考官方文檔:https://netbox./en/stable/installation/
一,、簡介
1,、What is NetBox?
NetBox 是一個基礎(chǔ)設(shè)施資源建模 (IRM) 應(yīng)用程序,,旨在支持網(wǎng)絡(luò)自動化,。NetBox 最初由DigitalOcean的網(wǎng)絡(luò)工程團(tuán)隊構(gòu)思,專為滿足網(wǎng)絡(luò)和基礎(chǔ)設(shè)施工程師的需求而開發(fā),。NetBox 在 Apache 2 許可下以開源形式提供,。它包括網(wǎng)絡(luò)管理的以下方面:
- IP 地址管理 (IPAM) - IP 網(wǎng)絡(luò)和地址、VRF 和 VLAN
- 設(shè)備架- 按組和站點組織
- 設(shè)備- 設(shè)備類型及其安裝位置
- 連接- 設(shè)備之間的網(wǎng)絡(luò),、控制臺和電源連接
- 虛擬化- 虛擬機和集群
- 數(shù)據(jù)電路- 長途通信電路和供應(yīng)商
簡單來說:一種模擬IIS用來解釋執(zhí)行asp動態(tài)頁的程序,。還可以把網(wǎng)站封裝成一個文件。
2,、What NetBox Is Not
盡管 NetBox 努力涵蓋網(wǎng)絡(luò)管理的許多領(lǐng)域,,但其功能集的范圍必然受到限制。這確保了開發(fā)專注于核心功能,,并且合理地控制了范圍蔓延,。為此,提供一些 NetBox未提供的功能示例可能會有所幫助:
- 網(wǎng)絡(luò)監(jiān)控
- DNS 服務(wù)器
- RADIUS 服務(wù)器
- 配置管理
- 設(shè)備管理
也就是說,,NetBox可用于使用執(zhí)行這些功能所需的數(shù)據(jù)填充外部工具,。
3,、設(shè)計理念
NetBox 的設(shè)計首先考慮了以下原則。
4,、復(fù)制真實世界
對數(shù)據(jù)模型進(jìn)行了仔細(xì)考慮,,以確保它能夠準(zhǔn)確地反映現(xiàn)實世界的網(wǎng)絡(luò)。例如,,IP 地址不是分配給設(shè)備,,而是分配給連接到設(shè)備的特定接口,并且一個接口可能分配有多個 IP 地址,。
5,、充當(dāng)“真理之源”
NetBox 旨在表示網(wǎng)絡(luò)的期望狀態(tài)與其運行狀態(tài)。因此,,強烈建議不要自動導(dǎo)入實時網(wǎng)絡(luò)狀態(tài),。在 NetBox 中創(chuàng)建的所有數(shù)據(jù)都應(yīng)首先經(jīng)過人工審核,以確保其完整性,。然后可以使用 NetBox 以高度可信的方式填充監(jiān)控和供應(yīng)系統(tǒng)。
6,、把事情簡單化
當(dāng)在相對簡單的80% 解決方案和更復(fù)雜的完整解決方案之間進(jìn)行選擇時,,通常會青睞前者。這確保了具有低學(xué)習(xí)曲線的精益代碼庫,。
7,、應(yīng)用程序堆棧
NetBox 建立在Django Python 框架之上,并使用PostgreSQL數(shù)據(jù)庫,。它作為您選擇的 HTTP 服務(wù)器后面的 WSGI 服務(wù)運行,。
功能 | 組件 |
---|
HTTP service | nginx or Apache | WSGI service | gunicorn or uWSGI | Application | Django/Python | Database | PostgreSQL 10+ | Task queuing | Redis/django-rq | Live device access | NAPALM (optional) |
8、支持的 Python 版本
NetBox 目前支持 Python 3.7,、3.8 和 3.9 環(huán)境,。(在 NetBox v3.0 中刪除了對 Python 3.6 的支持。)
二,、部署(本人使用centos8,,如使用ubuntu自行加 sudo )
此處提供的安裝說明已經(jīng)過測試,可在 Ubuntu 20.04 和 CentOS 8.3 上運行,。在其他發(fā)行版上安裝依賴項所需的特定命令可能會有很大差異,。
1、PostgreSQL 數(shù)據(jù)庫安裝
注意:NetBox 需要 PostgreSQL 10 或更高版本,。請注意,,不支持 MySQL 和其他關(guān)系數(shù)據(jù)庫。
1)設(shè)置RPM倉庫
進(jìn)入官網(wǎng)Red Hat安裝教程頁面,;選擇需要安裝的PostgreSQL版本,、操作系統(tǒng)平臺與版本,、CPU架構(gòu),然后執(zhí)行生成的安裝腳本中的第一行命令,,如下:
yum install -y https://download./pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2)安裝PostgreSQL-Server,、PostgreSQL-Contrib
yum install -y postgresql14-server
3)創(chuàng)建數(shù)據(jù)存儲目錄,并修改權(quán)限
# 創(chuàng)建目錄
mkdir -p /data/postgresql_data/
# 授權(quán), postgres用戶與組在第2步會自動創(chuàng)建好
chown -R postgres:postgres /data/postgresql_data/
4)初始化數(shù)據(jù)庫 切換到postgres用戶執(zhí)行命令:
su - postgres
運行初始化數(shù)據(jù)庫腳本
# 使用自定義數(shù)據(jù)存儲目錄
/usr/pgsql-14/bin/initdb -D /data/postgresql_data/
↑或↓
# 使用默認(rèn)數(shù)據(jù)存儲目錄
/usr/pgsql-14/bin/initdb
5)修改啟動腳本 提醒:使用root用戶當(dāng)使用自定義數(shù)據(jù)存儲目錄才需要修改,,否則不需要修改,;
編輯系統(tǒng)PostgreSQL啟動腳本
vim /usr/lib/systemd/system/postgresql-14.service
......
# Location of database directory
Environment=PGDATA=/data/postgresql_data/
......
重新加載系統(tǒng)服務(wù)
systemctl daemon-reload
systemctl enable postgresql-14
systemctl start postgresql-14
在繼續(xù)之前,請確認(rèn)您已安裝 PostgreSQL 10 或更高版本:
[root@op-zd-1-1v10 postgresql_data]# psql -V
psql (PostgreSQL) 14.2
6)設(shè)置監(jiān)聽地址 提醒:使用postgres用戶 修改數(shù)據(jù)存儲目錄下的postgresql.conf文件(可使用命令查找:find / -name postgresql.conf)
將listen_addresses配置的值改為*
vim /data/postgresql_data/postgresql.conf
......
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
......
7)新增密碼認(rèn)證
提醒:使用postgres用戶
修改數(shù)據(jù)存儲目錄下的pg_hba.conf文件
在文件末尾添加一行設(shè)置,,如下:
vim /data/postgresql_data/pg_hba.conf
......
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
# 添加可通過密碼對所有用戶和主機進(jìn)行認(rèn)證
host all all 0.0.0.0/0 password
8)修改postgres超級用戶密碼
提醒:使用postgres用戶
登錄PostgreSQL,,使用操作系統(tǒng)用戶
psql -p 5432 -U postgres
修改postgres超級用戶密碼
ALTER USER postgres WITH PASSWORD '1234qwer';
9)數(shù)據(jù)庫創(chuàng)建
至少,我們需要為 NetBox 創(chuàng)建一個數(shù)據(jù)庫并為其分配用戶名和密碼以進(jìn)行身份??驗證,。首先以系統(tǒng) Postgres 用戶身份調(diào)用 PostgreSQL shell,。
sudo -u postgres psql
在 shell 中,輸入以下命令來創(chuàng)建數(shù)據(jù)庫和用戶(角色),,用您自己的值代替密碼:
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD '1234qwer';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
2,、yum安裝指定版本Redis
# Centos7:
yum install -y http://rpms./enterprise/remi-release-7.rpm
# Centos8:(這兩個我忘了是哪個了,盲猜第二個,,不行就都試下)
yum install -y http://rpms./enterprise/remi-release-8.rpm
yum install -y http://rpms./enterprise/remi-release-8.rpm
安裝redis(默認(rèn)安裝5.0.3版本)
[root@op-zd-1-1v10 postgresql_data]# yum --enablerepo=remi install redis -y
[root@op-zd-1-1v10 postgresql_data]# sudo systemctl start redis
[root@op-zd-1-1v10 postgresql_data]# sudo systemctl enable redis
[root@localhost contrib]# redis-cli -v
redis-cli 5.0.3
指定版本看這里: 查看所有可用Redis版本
[root@op-zd-1-1v10 postgresql_data]# yum --enablerepo=remi list redis --showduplicates | sort -r
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
已加載插件:fastestmirror, langpacks
可安裝的軟件包
* webtatic: us-east.repo.webtatic.com
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* remi: mirrors.tuna.tsinghua.edu.cn
redis.x86_64 6.2.6-1.el7.remi remi
redis.x86_64 6.2.5-1.el7.remi remi
redis.x86_64 6.0.16-1.el7.remi remi
redis.x86_64 6.0.15-1.el7.remi remi
redis.x86_64 5.0.14-1.el7.remi remi
redis.x86_64 5.0.13-1.el7.remi remi
redis.x86_64 3.2.12-2.el7 epel
Loading mirror speeds from cached hostfile
* epel: mirrors.bfsu.edu.cn
安裝指定版本Redis
[root@op-zd-1-1v10 postgresql_data]# yum --enablerepo=remi install redis-6.0.16 -y
[root@op-zd-1-1v10 postgresql_data]# sudo systemctl start redis
[root@op-zd-1-1v10 postgresql_data]# sudo systemctl enable redis
在繼續(xù)之前,,請確認(rèn)您安裝的 Redis 版本至少為 v4.0:
[root@op-zd-1-1v10 postgresql_data]# redis-server -v
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=338ee3532d2f7e9f
您可能希望在/etc/redis.conf或處修改 Redis 配置/etc/redis/redis.conf,但在大多數(shù)情況下,,默認(rèn)配置就足夠了,。
驗證服務(wù)狀態(tài) 使用該redis-cli實用程序確保 Redis 服務(wù)正常運行:
[root@op-zd-1-1v10 postgresql_data]# redis-cli ping
PONG # 收到PONG來自服務(wù)器的響應(yīng)說明成功
3、python3.8 安裝
在安裝之前使用以下命令安裝 Python 所需的開發(fā)庫,。
[root@op-zd-1-1v10 postgresql_data]# sudo yum -y install gcc openssl-devel bzip2-devel libffi-devel
1,、先安裝依賴包
yum -y install zlib*
yum -y install nano wget epel-release gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel
2、下載python3.8文件
wget https://www./ftp/python/3.8.5/Python-3.8.5.tgz
3,、解壓
tar -xvf ./Python-3.8.5.tgz
4,、新建文件夾
mkdir /usr/local/python3
5、進(jìn)入文件夾
cd Python-3.8.5
6,、編譯
./configure --prefix=/usr/local/python3 --with-ssl
7,、安裝
make && make install
# 如果提示沒有按照make運行以下命令
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
8、刪除沖突文件
rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3
9,、設(shè)置軟連接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
10,、升級pip
/usr/local/python3/bin/python3.8 -m pip install --upgrade pip
11、安裝依賴包
pip3 install wheel
12,、查看版本
python3 -V
pip3 -V
4,、NetBox components
1)安裝 Python 3.7 或更高版本后,安裝剩余的系統(tǒng)包:
sudo yum install -y gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config
2)下載網(wǎng)箱
本文檔提供了兩種安裝 NetBox 的選項:從可下載的存檔文件或從 git 存儲庫,。從包安裝(下面的選項 A)需要為以后的每次更新手動獲取和提取存檔,,而通過 git 安裝(選項 B)允許通過重新拉動master分支進(jìn)行無縫升??級,。
選項 A:下載發(fā)布存檔本人使用(注意:可以到https://github.com/netbox-community/netbox/archive/該鏈接尋找想要的版本) 從 GitHub下載最新的穩(wěn)定版本作為 tarball 或 ZIP 存檔并將其解壓縮到您想要的路徑。在本例中,,我們將/opt/netbox用作 NetBox 根,。
sudo wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
sudo tar -xzf vX.Y.Z.tar.gz -C /opt
sudo ln -s /opt/netbox-X.Y.Z/ /opt/netbox
筆記:建議將 NetBox 安裝在以其版本號命名的目錄中。例如,,NetBox v3.0.0 將被安裝到/opt/netbox-3.0.0中,,并且來自的符號鏈接/opt/netbox/將指向該位置。(您可以使用命令驗證此配置ls -l /opt | grep netbox,。)這允許在不中斷當(dāng)前安裝的情況下并行安裝將來的版本,。更改為新版本時,只需更新符號鏈接,。
選項 B:克隆 Git 存儲庫 為 NetBox 安裝創(chuàng)建基本目錄,。對于本指南,我們將使用/opt/netbox.
sudo mkdir -p /opt/netbox/
cd /opt/netbox/
如果git尚未安裝,,請安裝它:
sudo yum install -y git
接下來,,將 NetBox GitHub 存儲庫的主分支克隆到當(dāng)前目錄。(此分支始終保存當(dāng)前的穩(wěn)定版本,。)
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
筆記:上面的git clone命令使用“淺克隆”來僅檢索最近的提交,。如果您需要下載整個歷史記錄,請省略該–depth 1參數(shù),。
該git clone命令應(yīng)生成類似于以下內(nèi)容的輸出:
Cloning into '.'...
remote: Enumerating objects: 996, done.
remote: Counting objects: 100% (996/996), done.
remote: Compressing objects: 100% (935/935), done.
remote: Total 996 (delta 148), reused 386 (delta 34), pack-reused 0
Receiving objects: 100% (996/996), 4.26 MiB | 9.81 MiB/s, done.
Resolving deltas: 100% (148/148), done.
筆記:通過 git 安裝還可以讓您輕松試用不同版本的 NetBox。要查看特定的 NetBox 版本,,請使用git checkout帶有所需版本標(biāo)簽的命令,。例如,git checkout v3.0.8,。
3)創(chuàng)建 NetBox 系統(tǒng)用戶
創(chuàng)建一個名為的系統(tǒng)用戶帳戶netbox,。我們將配置 WSGI 和 HTTP 服務(wù)以在此帳戶下運行。我們還將分配媒體目錄的此用戶所有權(quán),。這可確保 NetBox 能夠保存上傳的文件,。
sudo groupadd --system netbox
sudo adduser --system -g netbox netbox
[root@op-zd-1-1v10 netbox]# sudo chown --recursive netbox /opt/netbox/netbox-3.1.8/docs/media/
4)配置
移動到 NetBox 配置目錄并復(fù)制configuration.example.py命名的configuration.py. 該文件將保存您的所有本地配置參數(shù)。
[root@op-zd-1-1v10 netbox]# cd /opt/netbox-3.1.8/netbox/netbox/
[root@op-zd-1-1v10 netbox]# sudo cp configuration.example.py configuration.py
使用您喜歡的編輯器打開configuration.py以開始配置 NetBox,。NetBox 提供了許多配置參數(shù),,但新安裝只需要以下四個:
- ALLOWED_HOSTS
- DATABASE
- REDIS
- SECRET_KEY
5)ALLOWED_HOSTS
這是可以訪問此服務(wù)器的有效主機名和 IP 地址的列表。您必須至少指定一個名稱或 IP 地址,。(請注意,,這并不限制可以訪問 NetBox 的位置:它僅用于HTTP 主機標(biāo)頭驗證。)
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
如果您還不確定 NetBox 安裝的域名和/或 IP 地址是什么,,您可以將其設(shè)置為通配符(星號)以允許所有主機值:
ALLOWED_HOSTS = ['*']
6)數(shù)據(jù)庫
此參數(shù)保存數(shù)據(jù)庫配置詳細(xì)信息,。您必須定義配置 PostgreSQL 時使用的用戶名和密碼,。如果服務(wù)在遠(yuǎn)程主機上運行,??請相應(yīng)地更新HOST和PORT參數(shù),。有關(guān)各個參數(shù)的更多詳細(xì)信息,,請參閱配置文檔。
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}
7)REDIS
Redis 是 NetBox 用于緩存和后臺任務(wù)隊列的內(nèi)存鍵值存儲,。Redis 通常需要最少的配置,;對于大多數(shù)安裝,以下值應(yīng)該足夠了,。有關(guān)各個參數(shù)的更多詳細(xì)信息,,請參閱配置文檔。
請注意,,NetBox 需要指定兩個獨立的 Redis 數(shù)據(jù)庫:tasks和caching. 這些可能都由同一個 Redis 服務(wù)提供,,但是每個都應(yīng)該有一個唯一的數(shù)字?jǐn)?shù)據(jù)庫 ID。
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,
}
}
8)密鑰
必須為該參數(shù)分配一個隨機生成的密鑰,,該密鑰用作散列和相關(guān)加密函數(shù)的鹽,。(但是請注意,它永遠(yuǎn)不會直接用于加密機密數(shù)據(jù),。)此密鑰對于此安裝必須是唯一的,,建議長度至少為 50 個字符。它不應(yīng)該在本地系統(tǒng)之外共享,。
父目錄中提供了一個名為的簡單 Python 腳本generate_secret_key.py,,以幫助生成合適的密鑰:
[root@op-zd-1-1v10 netbox]# pwd
/opt/netbox-3.1.8/netbox/netbox
[root@op-zd-1-1v10 netbox]# python3 ../generate_secret_key.py
+S_hPcQXxm(KmWC0)B@0J28t7*5VSQz5*fKkw#p+5n%9I)50bR
9)可選要求
NetBox 所需的所有 Python 包都在其中列出,requirements.txt并將自動安裝,。NetBox 還支持一些可選包,。如果需要,這些包必須列在local_requirements.txtNetBox 根目錄中,。
10)凝固汽油彈
與NAPALM 自動化庫的集成允許 NetBox 從設(shè)備獲取實時數(shù)據(jù)并通過其 REST API 將其返回給請求者,。NAPALM_USERNAME和NAPALM_PASSWORD配置參數(shù)定義連接到設(shè)備時要使用的憑據(jù)。
sudo sh -c "echo 'napalm' >> /opt/netbox/local_requirements.txt"
11)遠(yuǎn)程文件存儲
默認(rèn)情況下,,NetBox 將使用本地文件系統(tǒng)來存儲上傳的文件,。要使用遠(yuǎn)程文件系統(tǒng),請安裝django-storages庫并在.configuration.py
sudo sh -c "echo 'django-storages' >> /opt/netbox/local_requirements.txt"
12)運行升級腳本
配置好 NetBox 后,,我們就可以進(jìn)行實際安裝了,。我們將運行打包的升級腳本 ( upgrade.sh) 來執(zhí)行以下操作:
- 創(chuàng)建 Python 虛擬環(huán)境
- 安裝所有必需的 Python 包
- 運行數(shù)據(jù)庫架構(gòu)遷移
- 在本地構(gòu)建文檔(供離線使用)
- 聚合磁盤上的靜態(tài)資源文件
sudo /opt/netbox/upgrade.sh
請注意,NetBox v3.0 及更高版本需要 Python 3.7 或更高版本,。如果服務(wù)器上的默認(rèn) Python 安裝設(shè)置為較低版本,,請將支持安裝的路徑作為名為PYTHON. (注意,環(huán)境變量必須在命令之后sudo傳遞,。)
sudo PYTHON=/usr/bin/python3.7 /opt/netbox/upgrade.sh
注意:完成后,,升級腳本可能會警告未檢測到現(xiàn)有虛擬環(huán)境,。由于這是新安裝,因此可以安全地忽略此警告,。
13)創(chuàng)建超級用戶
NetBox 不附帶任何預(yù)定義的用戶帳戶,。您需要創(chuàng)建一個超級用戶(管理帳戶)才能登錄 NetBox。首先進(jìn)入升級腳本創(chuàng)建的Python虛擬環(huán)境:
source /opt/netbox/venv/bin/activate
激活虛擬環(huán)境后,,您應(yīng)該注意到(venv)控制臺提示符前面的字符串,。
接下來,我們將使用createsuperuserDjango 管理命令(通過manage.py)創(chuàng)建一個超級用戶帳戶,。不需要為用戶指定電子郵件地址,,但請務(wù)必使用非常強大的密碼。
cd /opt/netbox/netbox
python3 manage.py createsuperuser
14)安排管家任務(wù)
NetBox 包含一個housekeeping管理命令,,用于處理一些重復(fù)性清理任務(wù),,例如清除舊會話和過期的更改記錄。盡管可以手動運行此命令,,但建議使用系統(tǒng)的cron守護(hù)程序或類似實用程序配置計劃作業(yè),。
調(diào)用此命令的 shell 腳本包含在contrib/netbox-housekeeping.sh. 它可以復(fù)制或鏈接到您系統(tǒng)的每日 cron 任務(wù)目錄,或直接包含在 crontab 中,。(如果將 NetBox 安裝到非標(biāo)準(zhǔn)路徑,,請務(wù)必先更新此腳本中的系統(tǒng)路徑。)
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
有關(guān)詳細(xì)信息,,請參閱內(nèi)務(wù)管理文檔,。
15)測試應(yīng)用程序(開發(fā)服務(wù)器僅用于開發(fā)和測試目的。對于生產(chǎn)使用而言,,它的性能和安全性都不夠,。不要在生產(chǎn)中使用它。)
至此,,我們應(yīng)該可以運行NetBox的開發(fā)服務(wù)器進(jìn)行測試了。我們可以通過啟動一個開發(fā)實例來檢查:
python3 manage.py runserver 0.0.0.0:8000 --insecure
如果成功,,您應(yīng)該會看到類似于以下內(nèi)容的輸出:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
August 30, 2021 - 18:02:23
Django version 3.2.6, using settings 'netbox.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ALLOWED_HOSTS接下來,,在端口 8000 上連接服務(wù)器的名稱或 IP(如 中定義);例如http://127.0.0.1:8000/,。您應(yīng)該會看到 NetBox 主頁,。嘗試使用創(chuàng)建超級用戶時指定的用戶名和密碼登錄。
16)防火墻放行
默認(rèn)情況下,,基于 RHEL 的發(fā)行版可能會阻止您使用 firewalld 進(jìn)行的測試嘗試,。可以打開開發(fā)服務(wù)器端口firewall-cmd(–permanent如果您希望規(guī)則在服務(wù)器重新啟動后仍然存在,,請?zhí)砑樱?br> firewall-cmd --zone=public --add-port=8000/tcp
5,、系統(tǒng)設(shè)置(systemd控制)
使用 systemd 來控制 gunicorn 和 NetBox 的后臺工作進(jìn)程,。首先,將 contrib/netbox.service 和 contrib/netbox-rq.service 復(fù)制到 /etc/systemd/system/ 目錄并重新加載 systemd 守護(hù)進(jìn)程:
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
然后,,啟動netbox和netbox-rq服務(wù)并讓它們在啟動時啟動:
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq
您可以使用該命令systemctl status netbox來驗證 WSGI 服務(wù)是否正在運行:
systemctl status netbox.service
您應(yīng)該會看到類似于以下內(nèi)容的輸出:
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-08-30 04:02:36 UTC; 14h ago
Docs: https://netbox./en/stable/
Main PID: 1140492 (gunicorn)
Tasks: 19 (limit: 4683)
Memory: 666.2M
CGroup: /system.slice/netbox.service
├─1140492 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140513 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140514 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
...
注意:如果 NetBox 服務(wù)無法啟動,,請發(fā)出命令journalctl -eu netbox以檢查可能指示問題的日志消息。
一旦您確認(rèn) WSGI 工作程序已啟動并正在運行,,請繼續(xù)進(jìn)行 HTTP 服務(wù)器設(shè)置,。
|