Thank you for reading this post, don't forget to subscribe!
Netbox – это бесплатный инструмент с открытым исходным кодом, используемый для управления и документирования компьютерных сетей.
Netbox IPAM написан на языке Django.
Он помогает облегчить задачу создания виртуальных реализаций устройств в центре обработки данных, которые первоначально выполнялись на бумаге.
возможности Netbox IPAM включают следующее:
- Управление Vlan
- Управление VRF
- IPAM – управление IP-адресами
- DCIM – управление инфраструктурой центра обработки данных
- Управление провайдерами каналов связи
- Многосайтовость
- Единая конвергентная база данных
- Оповещения
- Управление подключениями – интерфейсы/консоли/питание
- Персонализация заголовка для логотипа и т.д.
Запуск Netbox в контейнерах Docker очень прост, поскольку при этом можно избежать утомительной установки таких зависимостей, как Python, Django и т.д.
Начало работы.
Прежде чем приступить к работе над этим руководством, убедитесь, что ваша система обновлена и в ней установлены необходимые пакеты.
1 2 3 4 5 6 7 8 9 10 11 |
## На Debian/Ubuntu sudo apt update && sudo apt upgrade sudo apt install curl vim git ## На RHEL/CentOS/RockyLinux 8 sudo yum -y update sudo yum -y install curl vim git ## На Fedora sudo dnf update sudo dnf -y install curl vim git |
1. Установите Docker и Docker-Compose на Linux
Эта установка зависит от Docker и docker-compose, отвечающих следующим требованиям:
- Docker версии 19.03 и выше
- docker-compose версии 1.28.0 и выше
Установите последнюю версию Docker CE на Linux!
Не будем останавливаться на установке Docker
Проверьте установленную версию Docker.
$ docker -v
Docker version 20.10.10, build b485636
Затем добавьте вашего системного пользователя в группу docker, чтобы выполнять команды docker без использования команды sudo.
sudo usermod -aG docker $USER
newgrp docker
Теперь приступайте к установке Docker-compose на Linux.
Загрузите последнюю версию
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -
Сделайте файл исполняемым.
chmod +x docker-compose-linux-x86_64
Переместите файл в свой PATH.
sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
Проверьте свою установку, проверив версию docker-compose.
$ docker-compose version
Docker Compose version v2.1.1
Теперь запустите и включите docker.
sudo systemctl start docker && sudo systemctl enable docker
2. Настройка IPAM-сервера Netbox
Все компоненты, необходимые для сборки Netbox в виде контейнера, представлены в репозитории Github.
Здесь образы собираются и публикуются на Docker Hub и Quay.io раз в день.
Теперь gклонируйте gitx файл репозитория Netbox, как показано ниже.
git clone -b release https://github.com/netbox-community/netbox-docker.git
Перейдите в каталог Netbox.
cd netbox-docker
Измените файл docker-compose.yml из файла docker-compose.override.yml.example следующим образом.
1 2 3 4 5 6 7 |
tee docker-compose.override.yml <<EOF version: '3.4' services: netbox: ports: - 8000:8080 EOF |
Теперь мы готовы запустить наш контейнер docker.
Но сначала извлеките необходимые образы для Netbox, PostgreSQL, Redis и т.д.
$ docker-compose pull
Будет извлечено несколько образов, как показано ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
........... ⠿ postgres Pulled 13.5s ⠿ 9f97b97dbe44 Pull complete 3.5s ⠿ 1b95022c44c5 Pull complete 3.7s ⠿ 560a1e367f24 Pull complete 8.0s ⠿ 41255ef20c58 Pull complete 8.3s ⠿ 13107d5a09d7 Pull complete 8.6s ⠿ 234db58e5916 Pull complete 8.8s ⠿ 98ce0f30aef7 Pull complete 9.1s ⠿ redis Pulled 9.3s ⠿ 97518928ae5f Already exists 0.8s ⠿ 66f8c4150d27 Pull complete 2.5s ⠿ redis-cache Pulled 9.3s ⠿ 09a8bf17a0bf Pull complete 3.1s ⠿ e547313af8e7 Pull complete 4.0s ⠿ 335eeadfbde0 Pull complete 4.6s ⠿ 7151fc2c01eb Pull complete |
Запустите контейнер Netbox IPAM.
$ docker-compose up
Пример вывода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
[+] Running 10/10 ⠿ Network netbox-docker_default Created 0.2s ⠿ Volume "netbox-docker_netbox-media-files" Created 0.0s ⠿ Volume "netbox-docker_netbox-postgres-data" Created 0.0s ⠿ Volume "netbox-docker_netbox-redis-data" Created 0.0s ⠿ Container netbox-docker-redis-cache-1 Created 0.7s ⠿ Container netbox-docker-postgres-1 Created 0.6s ⠿ Container netbox-docker-redis-1 Created 0.7s ⠿ Container netbox-docker-netbox-worker-1 Created 0.5s ⠿ Container netbox-docker-netbox-housekeeping-1 Created 0.5s ⠿ Container netbox-docker-netbox-1 Created 0.3s Attaching to netbox-docker-netbox-1, netbox-docker-netbox-housekeeping-1, netbox-docker-netbox-worker-1, netbox-docker-postgres-1, netbox-docker-redis-1, netbox-docker-redis-cache-1 .................... netbox-docker-netbox-1 | ⏳ Waiting for control socket to be created... (1/10) netbox-docker-netbox-1 | 2021/11/15 10:37:29 [warn] 7#7 Unit is running unprivileged, then it cannot use arbitrary user and group. netbox-docker-netbox-1 | 2021/11/15 10:37:29 [info] 7#7 unit started netbox-docker-netbox-1 | 2021/11/15 10:37:29 [info] 20#20 discovery started netbox-docker-netbox-1 | 2021/11/15 10:37:29 [notice] 20#20 module: python 3.9.5 "/usr/lib/unit/modules/python3.unit.so" netbox-docker-netbox-1 | 2021/11/15 10:37:29 [info] 7#7 controller started netbox-docker-netbox-1 | 2021/11/15 10:37:29 [notice] 7#7 process 20 exited with code 0 netbox-docker-netbox-1 | 2021/11/15 10:37:29 [info] 22#22 router started netbox-docker-netbox-1 | 2021/11/15 10:37:29 [info] 22#22 OpenSSL 1.1.1l 24 Aug 2021, 101010cf netbox-docker-netbox-1 | ⚙️ Applying configuration from /etc/unit/nginx-unit.json netbox-docker-netbox-1 | 2021/11/15 10:37:30 [info] 26#26 "netbox" application started netbox-docker-netbox-1 | ✅ Unit configuration loaded successfully netbox-docker-netbox-1 | 2021/11/15 10:37:31 [notice] 7#7 process 18 exited with code 0 |
Когда вы увидите вышеуказанный вывод, процесс завершен, теперь выйдите, продолжите и убедитесь, что контейнеры запущены:
1 2 3 4 5 6 7 8 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ead31a95654a netboxcommunity/netbox:v3.0-1.4.1 "/sbin/tini -- /opt/…" 2 minutes ago Up 2 minutes 0.0.0.0:8000->8080/tcp, :::8000->8080/tcp netbox-docker-netbox-1 d652988275e6 netboxcommunity/netbox:v3.0-1.4.1 "/sbin/tini -- /opt/…" 2 minutes ago Up 2 minutes netbox-docker-netbox-housekeeping-1 6ee0e21ecde0 netboxcommunity/netbox:v3.0-1.4.1 "/sbin/tini -- /opt/…" 2 minutes ago Up 2 minutes netbox-docker-netbox-worker-1 3ff7e0c6b174 redis:6-alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp netbox-docker-redis-cache-1 92e49f207764 redis:6-alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp netbox-docker-redis-1 77908ccce0ca postgres:13-alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 5432/tcp netbox-docker-postgres-1 |
Если у вас включен брандмауэр, разрешите порт 8000, как показано ниже.
1 2 3 4 5 6 |
##Для Firewalld sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent sudo firewall-cmd --reload ##Для UFW sudo ufw allow 8000/tcp |
3. Доступ к веб-интерфейсу инструмента Netbox IPAM
Все готово, теперь мы можем продолжить и получить доступ к веб-интерфейсу Netbox IPAM с помощью URL http://Hostname:8000 или http://IP_Address:8000.
Войдите на страницу с учетными данными по умолчанию: имя пользователя: admin, пароль: admin и API-токен: 0123456789abcdef0123456789abcdef01234567.
Если вы хотите остановить все запущенные контейнеры, выполните следующую команду:
$ docker-compose stop
Вы можете удалить контейнеры, как показано ниже.
$ docker-compose stop && docker-compose rm
Пример вывода:
1 2 3 4 5 6 7 8 |
+] Running 6/0 ⠿ Container netbox-docker-netbox-housekeeping-1 Stopped 0.0s ⠿ Container netbox-docker-netbox-1 Stopped 0.0s ⠿ Container netbox-docker-netbox-worker-1 Stopped 0.0s ⠿ Container netbox-docker-redis-cache-1 Stopped 0.0s ⠿ Container netbox-docker-redis-1 Stopped 0.0s ⠿ Container netbox-docker-postgres-1 Stopped 0.0s ? Going to remove netbox-docker-netbox-1, netbox-docker-netbox-housekeeping-1, netbox-docker-netbox-worker-1, netbox-docker-redis-cache-1, netbox-docker-redis-1, netbox-docker-postgres-1 (y/N) y |