recent
أخبار ساخنة

شرح تثبيت أداة توثيق وإدارة الشبكة NetBox على Ubuntu 20.04 LTS

الصفحة الرئيسية


Netbox 

هو أداة مجانية.

 IP address (IPAM) and datacentre infrastructure management (DCIM)

يمكنك استخدامه لتخزين المعلومات حول الشبكات الخاصة بك  VMs  وStorage  وغيرها.

يعتمد على قاعدة بيانات PostgreSQL.

سوف نشرح هنا تثبيت Netbox مع Nginx كـ reverse proxy على Ubuntu 20.04.

المتطلبات الأساسية:

خادم يقوم بتشغيل Ubuntu 20.04.
تم تكوين كلمة مرور لـ root على الخادم الخاص بك.

قبل البدء  ستحتاج إلى تثبيت بعض متطلبات Netbox.

يمكنك تثبيتهم جميعاً عن طريق تشغيل الأمر التالي:

apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -y

بمجرد تثبيت جميع الحزم ، يمكنك المتابعة إلى الخطوة التالية.

تثبيت وتكوين قاعدة بيانات PostgreSQL


يعتمد Netbox على قاعدة بيانات PostgreSQL لتخزين البيانات.
يمكنك تثبيته باستخدام الأمر التالي:

apt-get install postgresql postgresql-contrib -y

بمجرد تثبيت PostgreSQL قم بتسجيل الدخول إلى PostgreSQL باستخدام الأمر التالي:

su - postgres
postgres@ubuntu2004:~$ psql

يجب أن تحصل على النتيجة التالية:

psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

بعد ذلك ، قم بإنشاء قاعدة البيانات والمستخدم لـ Netbox باستخدام الأمر التالي:

postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';

بعد ذلك ، امنح جميع الصلاحيات لقاعدة بيانات Netbox باستخدام الأمر التالي:

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

بعد ذلك ، اخرج من shell PostgreSQL باستخدام الأمر التالي:

postgres=# exit
postgres@ubuntu2004:~$ exit

تثبيت NetBox وإعداداته

أولاً ، قم بتغيير الدليل إلى / opt وقم بتنزيل أحدث إصدار من Netbox من مستودع Git Hub باستخدام الأمر التالي:

cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git

بعد ذلك ، أنشئ رابطًا رمزيًا لـ Python باستخدام الأمر التالي:

ln -s /usr/bin/python3 /usr/bin/python

بعد ذلك ، قم بتغيير الدليل إلى / opt / netbox / netbox / وقم بإنشاء مفتاح Django SECRET عن طريق تشغيل الأمر التالي:

cd /opt/netbox/netbox/
./generate_secret_key.py

يجب أن تحصل على النتيجة التالية:

wcq @ L2 ) eTDpo (k ^ f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z

بعد ذلك ، قم بتغيير الدليل إلى netbox وأعد تسمية ملف الإعداد المثال:

cd netbox
mv configuration.example.py configuration.py

بعد ذلك ، قم بتعديل ملف إعداد Netbox وحدد قاعدة البيانات الخاصة بك والمفتاح السري و allowed hosts:

nano configuration.py

قم بإجراء التغييرات التالية:

ALLOWED_HOSTS = ['your-server-ip']

# PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
#   https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
    'NAME': 'netbox',         # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'password',           # PostgreSQL password
    'HOST': 'localhost',      # Database server
    'PORT': '',               # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,      # Max database connection age
}

SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'

احفظ وأغلق الملف ثم ثبّت جميع متطلبات Python باستخدام الأمر التالي:

pip3 install -r /opt/netbox/requirements.txt

بعد ذلك قم باستخدام الأمر التالي:

cd /opt/netbox/netbox/
python3 manage.py migrate
بعد ذلك ، قم بإنشاء مستخدم Netbox إداري باستخدام الأمر التالي:
python3 manage.py createsuperuser

سيُطلب منك تقديم اسم المستخدم وكلمة المرور كما هو موضح:

Username (leave blank to use 'root'): netboxadmin
Email address: hitjethva@gmail.com
Password: 
Password (again): 
Superuser created successfully.

بعد ذلك قم بتجميع الملفًا باستخدام الأمر التالي:

python3 manage.py collectstatic

يجب أن ترى النتيجة التالية:

976 static files copied to '/opt/netbox/netbox/static'.

تثبيت وإعداد Gunicorn


Netbox هو تطبيق قائم على Django.
لذلك ستحتاج إلى تثبيت Gunicorn في نظامك.
يمكنك تثبيته عن طريق تشغيل الأمر التالي:

pip3 install gunicorn

بعد تثبيت Gunicorn قم بإنشاء ملف إعداد Gunicorn جديد لـ Netbox باستخدام الأمر التالي:

nano /opt/netbox/gunicorn_config.py

أضف الأسطر التالية:

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'

احفظ وأغلق الملف عند الانتهاء.

تثبيت وإعداد Supervisor


Supervisor هو client/server يسمح لك بمراقبة خدمة NetBox والتحكم فيها. 
يمكنك إنشاء ملف إعداد Supervisor جديد لـ Netbox باستخدام الأمر التالي:

nano /etc/supervisor/conf.d/netbox.conf

أضف الأسطر التالية:

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data

احفظ وأغلق الملف عند الانتهاء.

أعد تشغيل خدمة Supervisor بالأمر التالي:

systemctl restart supervisor

يمكنك أيضًا التحقق من حالة خدمة Supervisor باستخدام الأمر التالي:

systemctl status supervisor

يجب أن تحصل على النتيجة التالية:

? supervisor.service - Supervisor process control system for UNIX
     Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-30 05:49:08 UTC; 14s ago
       Docs: http://supervisord.org
   Main PID: 550606 (supervisord)
      Tasks: 5 (limit: 4691)
     Memory: 184.3M
     CGroup: /system.slice/supervisor.service
             ??550606 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
             ??550626 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550628 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550629 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550630 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

May 30 05:49:08 ubuntu2004 systemd[1]: Started Supervisor process control system for UNIX.
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 CRIT Supervisor is running as root.  Privileges were not dropped becau>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during p>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606
May 30 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626
May 30 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for

إعداد Nginx لـ NetBox


من الجيد تكوين Nginx كـ  reverse proxy  للوصول إلى Netbox في المنفذ 80.
يمكنك إنشاء virtual host جديد لـ Nginx باستخدام الأمر التالي:

nano /etc/nginx/sites-available/netbox.conf

أضف الأسطر التالية:

server {
    listen 80;
    server_name your-server-ip;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://your-server-ip:8001;
    }
}

أحفظ وأغلق الملف.

أنشئ رابطًا رمزيًا إلى:
 / etc / nginx / sites -abled / directory

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

تحقق من Nginx لأي خطأ في بناء الجملة باستخدام الأمر التالي:

nginx -t

إذا كان كل شيء على ما يرام ، يجب أن تحصل على النتيجة التالية:


nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


أخيرًا ، أعد تشغيل خدمة Nginx لتطبيق التغييرات.

systemctl restart nginx

يمكنك أيضًا التحقق من Nginx باستخدام الأمر التالي:

systemctl status nginx

يجب أن تحصل على النتيجة التالية:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-05-30 22:28:13 EST; 4min 14s ago
  Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 985 (nginx)
    Tasks: 3 (limit: 25028)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??985 nginx: master process /usr/sbin/nginx
           ??986 nginx: worker process
           ??987 nginx: worker process

May 30 21:28:12 ubuntu2004 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 30 21:28:13 ubuntu2004 systemd[1]: Started The nginx HTTP and reverse proxy server.

في هذه المرحلة ، تم تكوين خادم الويب Nginx لخدمة Netbox على المنفذ 80. 
يمكنك الآن المتابعة للوصول إلى واجهة الويب Netbox.

الوصول إلى واجهة ويب Netbox

افتح متصفح الويب الخاص بك وقم بزيارة
 http: // your-server-ip

ستتم إعادة توجيهك إلى الصفحة التالية:




انقر على log in.
يجب أن ترى صفحة تسجيل الدخول إلى Netbox في الشاشة التالية:




تسجيل الدخول إلى Netbox

قم بادخال اسم مستخدم وكلمة مرور مسؤول Netbox.
انقر فوق  زر تسجيل الدخول.
من المفترض أن ترى لوحة تحكم Netbox الافتراضية في الصفحة التالية:

google-playkhamsatmostaqltradent