目次
Outline
Postgresql インストール
sudo apt-get update && sudo apt-get upgrade -y &&
sudo apt-get install -y postgresql libpq-dev
netbox用DB作成
sudo -E -u postgres psql -c "CREATE DATABASE netbox;"
sudo -E -u postgres psql -c "CREATE USER netbox WITH PASSWORD 'netbox';"
sudo -E -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;"
Redisサーバ インストール
sudo apt install -y redis-server &&
redis-cli ping
Python3 インストール
sudo apt-get install -y python3 python3-pip python3-dev python3-venv python3-launchpadlib python3-testresources\
build-essential libxml2-dev libxslt1-dev libffi-dev graphviz\
libpq-dev libssl-dev zlib1g-dev git &&
sudo python3 -mpip install --upgrade pip wheel setuptools
netbox用ユーザ作成
外部からログインとかしない(させない)のでパスワードは要らない気がする
sudo useradd -s /bin/bash -m -r netbox
sudo su - netbox
set -o vi &&
mkdir -p ~/.ssh &&
echo -e "\nset -o vi" | tee -a ~/.bashrc > /dev/null &&
cat <<EOF | tee ~/.ssh/config > /dev/null &&
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
EOF
chmod 700 .ssh &&
chmod 600 .ssh/config &&
exit
netboxをGitから取得
sudo git clone -b master https://github.com/netbox-community/netbox.git /opt/netbox
netboxユーザのhomeを強引に変更
sudo ls -1a /home/netbox | sudo tee -a /opt/netbox/.gitignore
echo .gitignore | sudo tee -a /opt/netbox/.gitignore
sudo cp -r /home/netbox/. /opt/netbox
sudo chown -R netbox. /opt/netbox
sudo usermod -d /opt/netbox netbox
sudo rm -rf /home/netbox
netbox configuration.py 設定
sudo su - netbox
cp /opt/netbox/netbox/netbox/configuration.example.py /opt/netbox/netbox/netbox/configuration.py
python3 /opt/netbox/netbox/generate_secret_key.py
vi /opt/netbox/netbox/netbox/configuration.py
最低限以下修正
ALLOWED_HOSTS = ['*']
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
}
SECRET_KEY = 'ZqZsfk*=juLQ4s5#I9UD-J5gyv#fd+GJ2Mc5Hv@9wDiKh2Z34b'
TIME_ZONE = 'Asia/Tokyo'
netboxセットアップ
いつのまにかセットアップ用のスクリプトが同梱されているのでぜひ使う
./upgrade.sh
cp /opt/netbox/contrib/gunicorn.py /opt/netbox/.
superuser作成
source /opt/netbox/venv/bin/activate
cd /opt/netbox/netbox
python manage.py createsuperuser
テスト
python manage.py runserver 0.0.0.0:8000 --insecure
exit
サービス登録
デフォルトだとgunicornで動かしてる。
sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq
nginx
デフォルトのnginx.confだとhttps必須になっちゃうので、検証用にhttp
のnginx.confで動かしてみる
sudo su - netbox
cp contrib/nginx.conf contrib/nginx_tls.conf
cat << 'EOF' > contrib/nginx.conf
server {
listen [::]:80 ipv6only=off;
server_name _;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
exit
sudo apt install -y nginx
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /opt/netbox/contrib/nginx.conf /etc/nginx/sites-enabled/netbox
sudo nginx -t
sudo systemctl restart nginx
Housekeeping
日々のお掃除追加
sudo cp /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/
backup restore
https://netbox.readthedocs.io/en/stable/administration/replicating-netbox/
sqlデータベースをまるっと置き換えるかんじ