harbor
Ansible роль: Harbor
Обновленная роль для работы с современными версиями Ansible из-за некоторых устареваний, поскольку исходная роль, похоже, больше не обновляется.
Это роль Ansible, которая устанавливает Harbor на Linux.
Эта роль на стадии альфа. Приветствуются вопросы и запросы на слияние (PR).
Требования
Нет.
Переменные роли
Для полного списка смотрите defaults/main.yaml
.
По умолчанию роль использует IP текущего хоста для установки harbor_hostname
. Вы можете переопределить это.
Чтобы изменить директорию установки:
harbor_install_dir: /opt
Чтобы изменить протокол по умолчанию:
harbor_ui_url_protocol: "http"
Если вы хотите изменить открытые порты NGINX Harbor с обычных 80 и 443, используйте:
harbor_exposed_http_port: 81
harbor_exposed_https_port: 444
Если вы запускаете Harbor за прокси, установите harbor_behind_proxy: yes
. Это закомментирует необходимые строки в Nginx Harbor, чтобы он работал согласно разделу устранение неполадок.
Чтобы установить с дополнительными компонентами, укажите:
harbor_extras:
- clair
- notary
Если у вас уже есть настроенный Redis, возможно, вам нужно будет изменить имя хоста и порт Redis по умолчанию в Harbor:
# измените эти данные, если у вас уже работает свой redis
harbor_redis_host: redis
harbor_redis_port: 6379
Вы также можете передать дополнительные аргументы установщику с помощью harbor_installer_extra_args
(строка).
Вы можете определить harbor_projects
, если хотите, чтобы проекты создавались автоматически после установки Harbor.
harbor_projects:
- project_name: test
is_public: "false"
content_trust: "false"
prevent_vul: "true"
severity: "high"
auto_scan: "true"
По умолчанию пользователи могут регистрироваться самостоятельно. Если вы предпочитаете автоматически создавать пользователей, вы должны отключить саморегистрацию и указать список пользователей. Эти пользователи будут созданы автоматически. Пароль по умолчанию "HarborUser12345".
Эта операция идемпотентна.
harbor_self_registration: "off"
harbor_users:
- username: user1
email: [email protected]
realname: User Number 1
role_name: developer
role_id: 2
has_admin_role: true
Зависимости
Нет.
Пример плейбука
---
- name: Установка и настройка Harbor
hosts: registry
vars:
harbor_projects:
- project_name: myproject
is_public: "false"
content_trust: "false"
prevent_vul: "true"
severity: "high"
auto_scan: "true"
harbor_users:
- username: user1
email: [email protected]
realname: User Number 1
role_name: developer
role_id: 2
has_admin_role: true
roles:
- harbor
После выполнения плейбука вы должны иметь возможность перейти к вашему хосту на порту 80/443 и увидеть интерфейс Harbor. Вы можете войти с admin/Harbor12345
. Если вы изменили открытые порты, не забудьте использовать их вместо 80/443.
Запуск Harbor за вашим прокси
Распространённая конфигурация - запуск Harbor за прокси, где прокси отвечает за завершение SSL. Harbor может быть довольно запутанным в этом, так как у него есть свой собственный Nginx, и это может вызвать путаницу, потому что
a) У Harbor есть свой собственный прокси Nginx, который должен работать как http
b) Однако некоторые строки должны быть закомментированы в nginx Harbor, если вы используете прокси.
c) URL области также должен быть изменен на то, что видно извне: https
.
Вот пример переменных, которые нужно установить в таком сценарии:
harbor_hostname: "myharbor.company.com"
harbor_api_url: "https://myharbor.company.com/api"
harbor_behind_proxy: yes
# Внутри Harbor все еще работает по http
harbor_ui_url_protocol: "http"
harbor_customize_crt: "off"
harbor_registry_realm_protocol: "https"
# Запуск Nginx Harbor на разных портах, чтобы избежать конфликта с 80/443
harbor_exposed_http_port: 8798
harbor_exposed_https_port: 8799
harbor_extras:
- clair
harbor_self_registration: "off"
# Это полезно, если у вас уже работает контейнер redis
harbor_redis_host: redisharbor
Это обеспечит, что:
- Nginx Harbor закомментирует эту строку.
- URL области реестра обновляется корректно.
Это немного сложно, но это компромисс, чтобы не изменять файлы/шаблоны Harbor слишком сильно, так как это может вызвать частые сбои. Я открыт для предложений о том, как улучшить ситуацию.
Управление состоянием
Для удобства эта роль включает задачи для остановки, запуска и перезапуска реестра с использованием docker-compose.
Вот плейбук, созданный специально для перезапуска реестра:
---
- hosts: registry
tasks:
- name: Перезапуск Harbor
include_role:
name: harbor
tasks_from: restart
Запуск плейбука выше эффективно перезапускает все компоненты Harbor. Это учитывает, используете ли вы clair
и/или notary
, и использует их docker-compose файлы тоже.
tasks_from
может быть restart
, start
и stop
.
Если вы запускаете плейбук снова, чтобы убедиться в списке пользователей, но вы уже изменили пароль администратора по умолчанию, вы можете установить переменную harbor_admin_password
где-то или просто передать её в командной строке с -e "harbor_admin_password=mypass"
.
Информация об авторе
Эта роль была создана в 2019 году Nicholas Amorim и теперь обновлена Pascal Watteel в 2022 году.
Installs, Configures and Manages Harbor (docker)
ansible-galaxy install piwi3910/ansible-role-harbor