Разворачиваем Harbor | OTUS

Курсы

Программирование
iOS Developer. Basic
-23%
Python Developer. Professional
-13%
Golang Developer. Professional
-17%
Python Developer. Basic
-16%
iOS Developer. Professional
-13%
C# ASP.NET Core разработчик
-18%
Unity Game Developer. Professional
-11%
React.js Developer
-12%
Android Developer. Professional
-7%
Software Architect
-12%
C++ Developer. Professional
-8%
Разработчик C#
-8%
Backend-разработчик на PHP
-8%
Архитектура и шаблоны проектирования
-12%
Программист С Разработчик на Spring Framework MS SQL Server Developer AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Vue.js разработчик VOIP инженер Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Advanced Fullstack JavaScript developer Супер-интенсив Azure
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-17%
DevOps практики и инструменты
-18%
Архитектор сетей
-21%
Инфраструктурная платформа на основе Kubernetes
-22%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив по управлению миграциями (DBVC)
-16%
Administrator Linux. Professional
-5%
Administrator Linux.Basic
-10%
Супер-интенсив «ELK»
-10%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Разворачиваем Harbor

DevOps_Deep_14.8-5020-fd2b08.png

Встала задача развернуть приватный репозиторий, выбор пал на харбор, с учётом его интеграции с clair, notary. Также он интегрирован с chartmuseum, но эту его особенность пока не исследовал.

В дальнейших статьях я опишу настройку пайплайна в gitlab со сборкой образа, размещением его в харбор, проверкой образа на уязвимости и размещением отчёта.

Предварительно создаём self-signed ключи

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=RU/ST=Moscow/L=Moscow/O=example/OU=MY company/CN=mycompany.net" -key ca.key -out ca.crt
openssl genrsa -out harbor.mycompany.net.key 4096
openssl req -sha512 -new -subj "/C=RU/ST=Moscow/L=Moscow/O=example/OU=My company/CN=mycompany.net" -key harbor.mycompany.net.key -out harbor.mycompany.net.csr
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in harbor.mycompany.net.csr -out harbor.mycompany.net.crt
openssl x509 -inform PEM -in harbor.mycompany.net.crt -out harbor.mycompany.net.cert

Закидываем серверные ключи в выделенный каталог

sudo cp harbor.mycompany.crt /etc/ssl/certs/
sudo cp harbor.mycompany.key /etc/ssl/certs/

Скачиваем исталлятор

скачиваем harbor-offline-installer-v1.8.1.tgz распаковываем  заходим в директорию harbor

Настраиваем harbor.yml

hostname: harbor.mycompany.net

https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/ssl/certs/harbor.mycompany.net.crt
private_key: /etc/ssl/certs/harbor.mycompany.net.key

harbor_admin_password: Harbor12345

Запускаем инсталляцию

sudo ./install.sh --with-clair --with-chartmuseum --with-notary

Настраиваем docker на клиенте (у разработчика)

mkdir /etc/docker/certs.d/harbor.mycompany.net/

закидываем в этот каталог файлы

/etc/docker/certs.d/harbor.mycompany.net/
├── ca.crt
├── harbor.mycompany.net.cert
└── harbor.mycompany.net.key

Собираем докер образ и кладём его в харбор:

docker login
docker build -t harbor.mycompany.net/<project>/<name>:<tag> .
docker push harbor.mycompany.net/<project>/<name>:<tag>

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться