leafleafleafDocy banner shape 01Docy banner shape 02Man illustrationFlower illustration

Установка и настройка Harbor на Linux Ubuntu

Время чтения: 2 мин. 215 просмотров

Harbor — это современное облачное решение для безопасного хранения, управления и распространения контейнерных образов. Разработанный как расширяемый реестр образов с поддержкой Docker и Helm Chart, Harbor предлагает расширенные возможности контроля доступа, интеграцию с LDAP и Active Directory, сканирование образов на уязвимости, а также репликацию между реестрами. Благодаря своей открытой архитектуре и широким функциям безопасности, Harbor стал популярным выбором для корпоративных DevOps-команд, стремящихся централизовать управление контейнерами в своих инфраструктурах.

Установка хранилища репозиториев Harbor

Перед установкой должен быть установлен Docker и Docker-compose, также понадобится SSL сертификат, можно использовать самоподписанные или Let’s Encrypt.

Harbor устанавливает при помощи онлайн или оффлайн установщик, при использовании оффлайн установщика не требуется подключение к интернету, но занимает больше места.

Скачать последнюю версию можно с Github репозитория по ссылке.

Переходим в каталог, в который будем устанавливать Harbor:

				
					cd /opt
				
			

Скачиваем и распаковываем онлайн-установщик:

				
					wget https://github.com/goharbor/harbor/releases/download/v2.13.0/harbor-online-installer-v2.13.0.tgz
				
			
				
					tar -zxvf harbor-online-installer-*.tgz
				
			

Переходим в распакованный каталог:

				
					cd harbor
				
			

Копируем конфигурационный файл harbor.yml.tmpl с новым именем:

				
					cp harbor.yml.tmpl harbor.yml
				
			
Открываем файл harbor.yml и редактируем следующие параметры:
  • hostname – указываем DNS-имя или IP-адрес сервера по которому будет доступна панель веб-управления;
  • http:
    • port – http порт по которому будет доступна панель веб-управления.
  • https:
    • port – https порт по которому будет доступна панель веб-управления;
    • certificate – указываем полный путь до файла с публичной частью ключа .crt;
    • private_key – указываем полный путь до файла с закрытой частью ключа .key.
  • harbor_admin_password – указываем пароль пользователя для доступа к панели веб-управления;
  • database:
    • password – генерируем сложный пароль для базы данных.
  • data_volume – указываем полный путь до места хранения данных.
harbor
В состав Harbor входит встроенный сканер безопасности Trivy, реализованный в виде отдельного контейнерного образа. Для его подключения необходимо при установке указать параметр --with-trivy.

Устанавливаем Harbor:

				
					sudo ./install.sh --with-trivy
				
			

Установка занимает несколько минут и по окончанию выведет: Harbor has been installed and started successfully

harbor_installed

Вывести список запущенных контейнеров:

				
					docker ps
				
			
harbor_containers
После этого можно перейти в веб-интерфейс Harbor, используя адрес из параметра hostname конфигурационного файла или IP-адрес сервера.
harbor_admin

* где, Username – admin, Password – параметр harbor_admin_password указанный в конфигурационном файле ранее.

Настройка хранилища репозиториев Harbor

Перед настройкой авторизуемся в панели веб-управления.

Создание пользователя

Переходим в раздел Administration -> Users и нажимаем NEW USER.

Заполните форму создания пользователя:

  • Username — указываем уникальное имя пользователя;
  • Email — указываем рабочий email пользователя;
  • Full Name — указываем полное имя;
  • Password – указываем пароль пользователя;
  • Confirm Password — подтверждение пароля.
harbor_new_user

Создание робота

Робот-аккаунты нужны для автоматизации операций с репозиториями без использования обычных пользовательских учётных записей.

Переходим в раздел Administration -> Robot Accountsи нажимаем NEW ROBOT ACCOUNT.

Заполняем форму создания робота:

  • Name – указываем имя робота;
  • Description – описание робота;
  • Expiration time – задаём срок действия робота, never – означает бессрочно.

В следующей форме выбираем права доступа для робота.

Колонки действий:

  • Create – cоздать ресурс;
  • Delete – удалить ресурс;
  • List – получить список ресурсов;
  • Read – просмотреть конкретный ресурс;
  • Stop – останавливать активный процесс или задачу;
  • Update – изменить параметр ресурса.

Права доступа:

  • Audit Log – доступ к логам системы;
  • Catalog – управление каталогами образов;
  • Garbage Collection – управление сборкой мусора (удаление неиспользуемых слоёв образов);
  • Job Service Monitor – мониторинг сервисных задач Harbor;
  • Label – управление системными лейблами;
  • LDAP User – управление пользователями из LDAP;
  • Preheat Instance – управление preheat-инстансами (подогрев кэша образов на edge-нодах);
  • Project – управление проектами (создание, удаление и пр.);
  • Purge Audit – очистка логов аудита;
  • Quota – управление квотами проектов;
  • Registry – управление самим реестром образов (чтение/запись списка репозиториев и их содержимого);
  • Replication – управление заданиями репликации между Harbor и другими реестрами;
  • Replication Adapter – управление адаптерами для репликации;
  • Replication Policy – управление политиками репликации;
  • Robot Account – управление другими робот-аккаунтами;
  • Scan All – запуск массового сканирования образов;
  • Scanner – управление сканерами уязвимостей;
  • User – управление пользователями (локальными);
  • System Configuration – управление системными настройками Harbor.
harbot_robot_permission

Если нужно только скачивать образы, то права доступа выбирать не обязательно.

Далее выбираем проект доступ к образам которого нужно получить. Чтобы разрешить скачивание образов из проекта, отмечаем нужный проект, переходим во вкладку PERMISSIONS, ресурс Repository и выбираем действие Pull.
harbot_robot_project_permission

После создания будет отображен токен робота, запишите его.

harbot_robot_finish

Теперь с помощь робота можем авторизоваться:

				
					docker login harbor.example.com -u robot$robot -p <token>
				
			

И скачать образ:

				
					docker pull harbor.example.com/my-project/my-image:tag
				
			

Создание проекта

Проект — это логическая группа репозиториев образов, на проект назначаются права доступа, квоты, репликация и сканирование.

Переходим в раздел Projectsи нажимаем NEW PROJECT.

Заполняем форму создания проекта:
  • Project Name – указываем название проекта;
  • Access Level – отмечаем, если хотим чтобы образы были доступны без авторизации;
  • Project quota limits – указываем квоту на проект;
  • Proxy Cache – отмечаем если требуется прокси репозиторий, то есть если образ не найден локально, он будет скачан из интернета.
Далее переходим в созданный проект, выбираем вкладку Members, вводим имя ранее созданного пользователя и указываем права доступа.
Права доступа Project Admin Maintainer Developer Guest Limited Guest
Управление настройками проекта
Да
Нет
Нет
Нет
Нет
Добавление удаление участников
Да
Нет
Нет
Нет
Нет
Репликация
Да
Да
Нет
Нет
Нет
Сканирование
Да
Да
Да
Нет
Нет
Скачивание образов
Да
Да
Да
Да
Нет
Загрузка образов
Да
Да
Да
Нет
Нет
Удаление образов
Да
Да
Нет
Нет
Нет
Просмотр метаданных
Да
Да
Да
Да
Да
harbor_member

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

Создание сервиса

Рекомендуется создать сервис для удобного управления контейнерами Harbor, что обеспечит централизованный контроль и упрощённую эксплуатацию.

Создаем файл сервиса:

				
					nano /etc/systemd/system/harbor.service
				
			

И вставляем следующее:

				
					[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=https://goharbor.io/docs/

[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/libexec/docker/cli-plugins/docker-compose -f /opt/harbor/docker-compose.yml up
ExecStop=/usr/libexec/docker/cli-plugins/docker-compose -f /opt/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target
				
			
* где,
  • /usr/libexec/docker/cli-plugins/docker-compose – путь до бинарного файла docker-compose в системе, найти можно с помощь команды find / -name "docker-compose" 2>/dev/null;
  • /opt/harbor/docker-compose.yml – путь до docker-compose.yml Harbor, обычно в каталоге установки Harbor.
Чтобы systemd увидел изменения перезагружаем конфигурацию:
				
					systemctl daemon-reload
				
			

Теперь может перезагрузить Harbor командой:

				
					systemctl restart harbor
				
			

Добавляем в автозагрузку:

				
					systemctl enable harbor
				
			

Дополнительно

Для упрощения работы с пользователями можно интегрировать Active Directory с Harbor и добавить группу AD в проект.

Leave a Comment

Поделиться этой страницей

Установка и настройка Harbor на Linux Ubuntu

Или скопируйте ссылку

СОДЕРЖИМОЕ