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 году Николасом Аморимом.

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