harbor
Ansible Роль: Harbor
Ansible роль, которая устанавливает Harbor на Linux.
Эта роль находится на стадии альфа. Все замечания и запросы на изменение приветствуются.
Требования
Нет.
Переменные Роли
Полный список смотрите в 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:
- nicholasamorim.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
harbor_ssl_cert: /etc/ssl/certs/cert.pem
harbor_ssl_cert_key: /etc/ssl/certs/cert.key
Это обеспечит:
- Закомментированную эту строку в 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 году Николасом Аморимом.
Installs, Configures and Manages Harbor (docker)
ansible-galaxy install nicholasamorim/ansible-role-harbor