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 году.

Установить
ansible-galaxy install piwi3910/ansible-role-harbor
Лицензия
mit
Загрузки
70
Владелец