環境:
CentOS 7、EPEL庫、git、python3.8.0版本以上、podstgresql、redis、netbox、Nginx
?
安裝步驟:
1、安裝epel庫
sudo yum -y install epel-release
?
2、在CentOS 7系統上禁用SELinux
sudo setenforce 0
sudo sed-i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
cat /etc/selinux/config | grep SELINUX=
?
3、安裝Netbox安裝的依賴項包
sudo yum -y install @"Development Tools"
sudo yum -y install wget vim gcc htdp git libxml2-devel libxslt libffi-devel graphviz libxslt-devel supervisor zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel gdbm-devel ncurses-devel
?
4、在CentOS 7上安裝Python 3.8
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
解壓:
tar xzf Python-3.8.0.tgz
進入python
cd Python-3.8.0
sudo ./configure --enable-optimizations
sudo make altinstall
創建python3.8到python3的軟連接
sudo ln -fs /usr/local/bin/python3.7 /usr/bin/python3
sudo ln -fs /usr/local/bin/pip3.7 /usr/bin/pip3
5、安裝和配置PostgreSQL數據庫
sudo yum -y install download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安裝數據庫服務器
sudo yum -y install postgresql14 postgresql14-server
?
初始化數據庫
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
?
設置開機自啟動
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
例:配置數據庫用于netbox(根據實際開發情況進行配置)
sudo su - postgres
-bash-4.2$ psql
psql (14.0)
Type "help" for help.
?
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'StrongPassword';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=#
postgres=# \q
-bash-4.2$ exit
logout
?
啟用密碼登錄PostgreSQL數據庫
sudo sed -i -e 's/ident/md5/' /var/lib/pgsql/14/data/pg_hba.conf
重啟pgsql
sudo systemctl restart postgresql-14
6、在CentOS 7上安裝和配置Netbox
在opt文件夾下從git上拉取netbox
cd /opt/
sudo git clone -b master https://github.com/digitalocean/netbox.git
進入到netbox文件內對配置文件進行自配置
cd netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py
編輯configuration.py文件
ALLOWED_HOSTS = [''] '內'進行IP指定
?
# PostgreSQL database configuration.
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'StrongPassword', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
創建一個netbox的虛擬環境
cd /opt/netbox/
sudo python3 -m venv /opt/netbox/venv
激活環境
source venv/bin/activate
?
環境內安裝Django依賴
sudo python3 -m pip install -U pip
sudo python3 -m pip install -U setuptools
sudo pip3 install -r /opt/netbox/requirements.txt
sudo pip3 install --upgrade PyYAML --ignore-installed
?
配置Django環境變量
PYTHONPATH="/usr/local/lib/python3.8/site-packages/":"${PYTHONPATH}"
export PYTHONPATH
?
生成Django密鑰
cd /opt/netbox/netbox
./generate_secret_key.py
再次編輯configuration.py文件,將SECRET_KEY填入密鑰
?
創建框架
cd /opt/netbox/netbox/
sudo python3 manage.py migrate
?
創建Netbox Admin用戶和靜態文件
sudo python3 manage.py createsuperuser
?
通過運行以下命令移動靜態文件
sudo python3 manage.py collectstatic
?
為Netbox配置gunicorn
sudo pip3 install gunicorn
sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn_config.py
編輯gunicorn_config.py配置文件
sudo vim /opt/netbox/gunicorn_config.py
?
在配置文件頂部添加如下信息
command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
user = 'netbox'
?
創建一個netbox的超級管理員
sudo vim /etc/supervisord.d/netbox.ini
填入如下信息:
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = netbox
?
配置超級管理員信息
sudo groupadd --system netbox
sudo useradd --system netbox -g netbox
sudo chown -R netbox:netbox /opt/netbox/netbox/media/
配置開機自啟動
sudo systemctl enable supervisord
sudo systemctl restart supervisord
?
配置端口:(以8001為例)
sudo ss -tunelp | grep 8001
?
安裝redis
sudo yum -y install redis
sudo systemctl enable --now redis
systemctl status redis
?
7、將httpd或Nginx配置為Netbox的代理
1、安裝Nginx
sudo yum -y install nginx
2、創建一個虛擬文件并寫入如下內容
server {
listen 80;
server_name netbox.example.com;
client_max_body_size 25m;
?
location /static/ {
alias /opt/netbox/netbox/static/;
}
?
location / {
proxy_pass http://127.0.0.1:8001;
}
}
?
3、配置Nginx開機自啟動
sudo nginx -t
sudo systemctl start nginx
sudo systemctl enable nginx
4、關閉防火墻
sudo firewall-cmd --permanent --add-port={80,443}/tcp
sudo firewall-cmd --reload
8、訪問地址:
(根據自己配置)