如何在Ubuntu 18.04/Ubuntu 16.04上安装netbox
介绍
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_KEY
Conf文件的一部分。
如果数据库位于其他服务器上,请将其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