Перейти к основному содержимому

Репозитории

Репозиторий — это место для хранения и управления контентом Ansible, таким как playbook и роли.

Semaphore поддерживает следующие типы репозиториев:

  • локальная файловая система (/path/to/the/repo)
  • локальный Git-репозиторий (file://)
  • удалённый Git-репозиторий, доступный по HTTPS (https://) или SSH (ssh://)
  • протокол git:// поддерживается, но не рекомендуется по соображениям безопасности.

Для запуска любого шаблона задачи требуется репозиторий.

Аутентификация

Если вы используете удалённый репозиторий, требующий аутентификации, вам нужно настроить ключ в разделе Хранилище ключей Semaphore.

Для удалённых репозиториев, использующих SSH, необходимо использовать ваш SSH-ключ из Хранилища ключей.

Для удалённых репозиториев без аутентификации можно создать ключ типа None.

Создание нового репозитория

  1. Убедитесь, что вы настроили ключ для добавляемого репозитория в разделе хранилища ключей.

  2. Перейдите в раздел «Репозитории» Semaphore и нажмите кнопку Новый репозиторий в правом верхнем углу.

  3. Настройте репозиторий:

    • Задайте имя репозитория
    • Добавьте URL. URL должен начинаться с одного из следующих вариантов:
      • /path/to/the/repo для локальной папки в файловой системе
      • https:// для удалённого Git-репозитория, доступного по HTTPS
      • ssh:// для удалённого Git-репозитория, доступного по SSH
      • file:// для локального Git-репозитория
      • git:// для удалённого Git-репозитория, доступного по протоколу Git
    • Укажите ветку репозитория; если вы не уверены, скорее всего это master или main
    • Выберите ключ доступа, который вы настроили перед добавлением этого репозитория.
  4. Нажмите «Сохранить», когда всё будет настроено.

Редактирование существующего репозитория

  1. Перейдите в раздел «Репозитории» Semaphore.

  2. Нажмите значок карандаша рядом с репозиторием, который хотите изменить, — откроется конфигурация репозитория.

Удаление репозитория

Убедитесь, что удаляемый репозиторий не используется ни в одном шаблоне задач. Репозиторий нельзя удалить, если он используется в каком-либо шаблоне задач:

  1. Перейдите в раздел «Репозитории» Semaphore.

  2. Нажмите значок корзины у репозитория, который хотите удалить.

  3. Нажмите «Да» во всплывающем окне подтверждения, если вы уверены, что хотите удалить этот репозиторий.

Requirements

При инициализации проекта Semaphore ищет и устанавливает роли и коллекции Ansible из requirements.yml в следующих расположениях и в следующем порядке.

Роли

  • playbook_dir/roles/requirements.yml
  • playbook_dir/requirements.yml
  • repo_path/roles/requirements.yml
  • repo_path/requirements.yml

Коллекции

  • playbook_dir/collections/requirements.yml
  • playbook_dir/requirements.yml
  • repo_path/collections/requirements.yml
  • repo_path/requirements.yml

Логика обработки

  • Каждый файл обрабатывается независимо
  • Если файл существует, он обрабатывается в соответствии со своим типом (роль или коллекция)
  • Если при обработке какого-либо файла возникает ошибка, процесс установки останавливается и возвращает ошибку
  • Один и тот же файл requirements.yml в корневых каталогах (playbook_dir/requirements.yml и repo_path/requirements.yml) обрабатывается дважды — один раз для ролей и один раз для коллекций

Semaphore попытается обработать все эти расположения независимо от того, были ли найдены или успешно обработаны предыдущие, за исключением случаев возникновения ошибок.