如何在Ubuntu 18.04/Ubuntu 16.04上安装netbox

时间:2020-02-23 14:44:43  来源:igfitidea点击:

介绍

NetBox是一个开源Web应用程序,旨在帮助管理和记录计算机网络。

第一步

如果我们在前提下拥有新安装,则会创建一个新的sudo用户

$sudo useradd tech

为新用户添加超级用户权限以启用用户TUN管理任务,而无需使用root,通过将新用户添加到具有默认管理权限的"sudo"组来完成此操作的最佳方法

$sudo usermod -aG sudo tech

第二步

安装PostgreSQL.

让我们更新系统并安装PostgreSQL

$sudo apt-get update
$sudo apt-get install -y postgresql libpq-dev

检查PostgreSQL是否正在运行

Hyman@theitroad:~$systemctl status postgresql
WARNING: terminal is not fully functional
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor 
   Active: active (exited) since Wed 2016-06-27 04:39:32 EDT; 26min ago
 Main PID: 11811 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service
Jun 27 04:39:32 pri systemd[1]: Starting PostgreSQL RDBMS...
Jun 27 04:39:32 pri systemd[1]: Started PostgreSQL RDBMS.
Jun 27 04:39:42 pri systemd[1]: Started PostgreSQL RDBMS.
lines 1-9/9 (END)

第三步

为NetBox创建数据库和用户,并授予用户的所有权限。
用户是netbox,用户也是netbox。
使用我们自己的密码:

Hyman@theitroad:~$sudo -u postgres psql

[sudo]

Tech密码:PSQL(9.5.13)执行"帮助"以获取帮助。
postgres =创建数据库netbox;创建数据库postgres =使用密码'example12'创建用户netbox;创建角色postgres =授予数据库netbox上的所有权限到netbox;格兰特postgres = \ q

尝试登录数据库T,请确保它正在工作。
只需输入以下命令并传递我们已定义的密码。
对我来说,它是例子12.
如果成功,将会随之而来的NetBox提示。

Hyman@theitroad:~$psql -U netbox -W -h localhost netbox
Password for user netbox: 
psql (9.5.13)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=>

第四步

安装Netbox应用程序。
首先,我们必须安装依赖关系和包,包括Python3

$sudo apt-get install -y python3 python3-dev python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
$sudo easy_install3 pip

在此之后,让我们从Git下载NetBox并安装它。
就在尚未安装的情况下,请安装它。
安装git

Hyman@theitroad:~$sudo apt-get install -y git                                                                                                               
Reading package lists... Done
Building dependency tree       
Reading state information... Done

创建基本netbox目录

$sudo mkdir -p /opt/netbox/
$cd /opt/netbox/

在此之后,只需将ClonenEtBox Github存储库到我们创建的基本文件夹中。
不要忘记尾随点。

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

接下来,将/opt/netbox/netbox/media/medio /目录的所有权更改为用户。

Hyman@theitroad:/opt/netbox$sudo chown -R tech:tech /opt/netbox/netbox/media/
Hyman@theitroad:/opt/netbox$ls                                                  
CONTRIBUTING.md  mkdocs.yml            README.md         upgrade.sh
docs             netbox                requirements.txt
LICENSE.txt      old_requirements.txt  scripts

Python包安装让我们下次使用pip在Requiements.txt文件中安装Python软件包。
软件包是

Hyman@theitroad:/opt/netbox$cat requirements.txt 
Django>=1.11,<2.0 django-cors-headers>=2.1.0
django-debug-toolbar>=1.9.0
django-filter>=1.1.0
django-mptt>=0.9.0
django-tables2>=1.19.0
django-timezone-field>=2.0
djangorestframework>=3.7.7
drf-yasg[validation]>=1.4.4
graphviz>=0.8.2
Markdown>=2.6.11
natsort>=5.2.0
ncclient==0.5.3
netaddr==0.7.18
paramiko>=2.4.0
Pillow>=5.0.0
psycopg2-binary>=2.7.4
py-gfm>=0.1.3
pycryptodome>=3.4.11
xmltodict>=0.11.0
$pip3 install -r requirements.txt
You will see messages like below. Let them finish..
Collecting Django<2.0,>=1.11 (from -r requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/25/4d/c8228419346a0e84aec202a43e181afc6572b861d38f8a0306dbce6abef0/Django-1.11.13-py2.py3-none-any.whl (6.9MB)

第五步

配置Python软件包后配置NetBox,下一步是配置NetBox。
示例配置文件位于/opt/netbox/netbox/netbox目录中,因此更改为目录并制作它的副本

$cd /opt/netbox/netbox/netbox
$cp configuration.example.py configuration.py

在Configuration.py文件中,编辑以下部分SHWN:

允许_hosts = ['服务器的''或者hostname's securit_key

# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['192.168.122.114']
# PostgreSQL database configuration.
DATABASE = {
    'NAME': 'netbox',         # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'example12',           # PostgreSQL password
    'HOST': 'localhost',      # Database server
    'PORT': '',               # Database port (leave blank for default)
}
# This key is used for secure generation of random numbers and strings. It must never be exposed outside of this file.
# For optimal security, SECRET_KEY should be at least 50 characters in length and contain a mix of letters, numbers, and
# symbols. NetBox will not run without this defined. For more information, see
# https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SECRET_KEY
SECRET_KEY = 'Hyman@theitroad=%62B1-sCexf*secret*rdGzH^lQbcMNVo4Apu9Jvy7Y_F*w)3TthSP+'

对于秘密密钥,只需导航到/opt/netbox/netbox并使用Generate_secret_key.py脚本以下列方式为我们生成它。

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

将生成秘密密钥,应保密。
粘贴它 SECRET_KEYConf文件的一部分。
如果数据库位于其他服务器上,请将其IP地址放在主机部分中 DATABASE代码块。
用户名和密码是安装PostgreSQL时提供的NES。
由于NetBox使用DATBASE运行,因此需要安装模式。
要实现这一点,只需执行以下操作:

$cd /opt/netbox/netbox/
$python3 manage.py migrate
Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, secrets, sessions, tenancy, users, virtualization
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying tenancy.0001_initial... OK
  Applying dcim.0001_initial... OK

第六步

用户创建和静态文件的集合为webgui。
由于NetBox不附带默认用户,因此我们必须在推出它时创建一个用户,以便登录系统。

Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py create superuser
Unknown command: 'create'
Type 'manage.py help' for usage.
Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py createsuperuser 
Username (leave blank to use 'root'): tech
Email address: 
Password: 
Password (again): 
Superuser created successfully.
Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py collectstatic --no-input
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.woff'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.eot'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.ttf'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.svg'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.woff2'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/js/bootstrap.min.js'
Copying '/opt/netbox/netbox/project-static/bootstrap-3.3.7-dist/js/npm.js
....................
.....................
279 static files copied to '/opt/netbox/netbox/static'.

如果我们希望立即开始使用它,NetBox为我们提供初始数据。
如果我们希望自己启动一切,可以跳过此步骤

Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py loaddata initial_data
Installed 53 object(s) from 5 fixture(s)

第七步

测试我们的Fresh Netbox此安装是一个测试环境,我将在以后覆盖整个设置。
在测试环境周围巡航,看看它是否满足需求。
测试环境在虚拟环境中运行如下。

Hyman@theitroad:/opt/netbox/netbox$sudo python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
June 28, 2016 - 07:51:54
Django version 1.11.13, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[28/Jun/2016 07:52:04] "GET /login/?next=/HTTP/1.1" 200 14516
[28/Jun/2016 07:53:25] "POST /login/HTTP/1.1" 302 0
[28/Jun/2016 07:53:26] "GET/HTTP/1.1" 200 37460

现在导航到浏览器并执行服务器的IP地址加上端口号:192.168.122.114:8000