🐳 Как запустить инструмент Netbox IPAM в контейнерах Docker

Мануал

Добро пожаловать в это руководство по запуску Netbox IPAM в контейнерах Docker.

Но прежде чем мы погрузимся в суть вопроса, давайте сначала узнаем, что представляет собой инструмент Netbox IPAM.

Netbox – это бесплатный инструмент с открытым исходным кодом, используемый для управления и документирования компьютерных сетей.

Netbox IPAM написан на языке Django.

Он помогает облегчить задачу создания виртуальных реализаций устройств в центре обработки данных, которые первоначально выполнялись на бумаге.

Удивительные возможности Netbox IPAM включают следующее:

  • Управление Vlan
  • Управление VRF
  • IPAM – управление IP-адресами
  • DCIM – управление инфраструктурой центра обработки данных
  • Управление провайдерами каналов связи
  • Многосайтовость
  • Единая конвергентная база данных
  • Оповещения
  • Управление подключениями – интерфейсы/консоли/питание
  • Персонализация заголовка для логотипа и т.д.

Запуск Netbox в контейнерах Docker очень прост, поскольку при этом можно избежать утомительной установки таких зависимостей, как Python, Django и т.д.

Начало работы.

Прежде чем приступить к работе над этим руководством, убедитесь, что ваша система обновлена и в ней установлены необходимые пакеты.

## На 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 следующим образом.

tee docker-compose.override.yml <<EOF
version: '3.4'
services:
  netbox:
    ports:
      - 8000:8080
EOF

Теперь мы готовы запустить наш контейнер docker.

Но сначала извлеките необходимые образы для Netbox, PostgreSQL, Redis и т.д.

$ docker-compose pull

Будет извлечено несколько образов, как показано ниже:

...........
 ⠿ 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

Пример вывода:

[+] 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

Когда вы увидите вышеуказанный вывод, процесс завершен, теперь выйдите, продолжите и убедитесь, что контейнеры запущены:

$ 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, как показано ниже.

##Для 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

Пример вывода:

+] 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

Заключение

На данный момент мы все можем согласиться с тем, что запуск Netbox IPAM Tool в Docker-контейнерах стал проще.

см. также:

 

Добавить комментарий