Шаблоны задач
Шаблон задачи описывает, что и как запускать: приложение, репозиторий и исполняемый файл, инвентарь, группы переменных, учётные данные и опции, которые пользователь может изменить при запуске задачи. Каждая задача создаётся из шаблона.
Шаблоны поддерживают следующие приложения:
Администраторы могут включать и отключать приложения, а также добавлять свои, см. Приложения.
Список шаблонов
Раздел Task Templates содержит все шаблоны проекта.

| Столбец | Содержимое |
|---|---|
| Name | Имя шаблона со значком приложения. Кнопка воспроизведения запускает новую задачу. |
| Version | Последняя версия сборки для шаблонов build и deploy, для остальных — значок результата последней задачи. |
| Status | Значок статуса последней задачи либо Not launched. |
| Last Task | Номер последней задачи и кто её запустил. |
| Playbook | Файл, который запускает шаблон. |
| Inventory, Variable Groups, Repository | Ресурсы, привязанные к шаблону. |
Вкладки над списком — это представления: именованные группы шаблонов. Значок шестерёнки в правом верхнем углу позволяет выбрать отображаемые столбцы. Щёлкните по стрелке слева от строки, чтобы развернуть последние задачи этого шаблона.

Страница шаблона
Щёлкните по имени шаблона, чтобы открыть его страницу. Кнопка в правом верхнем углу запускает задачу (Run, Build или Deploy в зависимости от типа), а Stop all останавливает все выполняющиеся и стоящие в очереди задачи шаблона.
| Вкладка | Содержимое |
|---|---|
| Tasks | Задачи этого шаблона с кнопкой повторного запуска в каждой строке. |
| Details | Playbook, тип, инвентарь, группы переменных и репозиторий, а также диаграмма статусов задач с теми же фильтрами, что и в Статистике. |
| Workspaces | Только для шаблонов Terraform, OpenTofu и Terragrunt: список рабочих пространств, см. Рабочие пространства. |

Типы шаблонов
| Тип | Назначение |
|---|---|
| Task | Обычный запуск. Тип по умолчанию. |
| Build | Создаёт артефакт и присваивает ему автоматически увеличивающуюся версию. |
| Deploy | Разворачивает версию, созданную шаблоном сборки. |
Шаблоны сборки и развёртывания, а также переменная semaphore_vars, которую они передают в playbook, описаны в разделе Шаблоны сборки и развёртывания.
Форма шаблона
Пользователи с ролью Manager и выше могут создавать и изменять шаблоны с помощью кнопки New Template и значка карандаша. Форма разбита на следующие группы. Поля, отмеченные названием приложения, отображаются только для него.
Общие поля
| Поле | Описание |
|---|---|
| Name | Обязательное. Имя шаблона. |
| Description | Необязательный текст, отображаемый под именем. |
| App | Запускаемое приложение. |
| Repository | Репозиторий с playbook или скриптом, см. Репозитории. |
| Branch | Ветка Git, которую нужно выгрузить. Пустое значение означает ветку, заданную в репозитории. Отключено для монорепозитория, рабочая копия которого создаётся один раз для всех шаблонов. |
| Playbook / Script filename | Путь к файлу относительно корня репозитория. Для приложений Terraform — подкаталог с конфигурацией. |
| Different working directory | Запускать инструмент из другого каталога репозитория. |
| Inventory | Инвентарь Ansible либо рабочее пространство для приложений Terraform. |
| Variable Groups | Одна или несколько групп переменных, чьи переменные и секреты передаются в задачу, см. Группы переменных. |
| Vault password (Ansible) | Ключи для расшифровки Ansible Vault, см. Несколько паролей vault. |
| View | На какой вкладке представления показывать шаблон. |
| CLI args | Дополнительные аргументы командной строки в виде JSON-массива, например ["-vvv"]. |
Поля, зависящие от типа
| Поле | Тип | Описание |
|---|---|---|
| Start Version | Build | Первая присваиваемая версия, например 1.0.0. |
| Build Template | Deploy | Шаблон сборки, артефакты которого разворачивает этот шаблон. |
| Autorun | Deploy | Запускать развёртывание автоматически после каждой успешной сборки. |
Дополнительные опции
| Поле | Описание |
|---|---|
| Allow parallel tasks | Разрешить одновременное выполнение нескольких задач этого шаблона, см. Параллельные задачи. |
| Alerts, Send on success, Send on error | Отправлять ли уведомления по задачам этого шаблона и при каких результатах. Для уведомлений также требуется включённая опция Allow alerts for this project в настройках проекта. |
| Runner tag (Pro) | Выполнять задачи только на раннерах с этим тегом, см. Раннеры проекта. |
| Executor image | Образ контейнера для раннеров Docker и Kubernetes, см. Образ исполнителя. |
| Issue JWT to task runner, JWT audience, JWT TTL | Выдавать задаче подписанный токен, см. JWT для задач. |
| Auto-run task if new git commit have been found | Опрашивать репозиторий с заданным интервалом и запускать задачу при появлении новых коммитов в ветке. |
| Survey variables | Поля, которые пользователь заполняет при запуске задачи, см. Переменные опроса. |
Подсказки
Подсказки (prompts) — это флажки, позволяющие пользователю изменять встроенные опции в диалоге New Task: ветку, инвентарь, аргументы командной строки, а для Ansible — limit, теги, пропускаемые теги, уровень отладки и установку Galaxy. См. Подсказки.
Для монорепозитория подсказка Branch отключена: все шаблоны такого репозитория работают в одной общей рабочей копии, поэтому задача не может переключить её на другую ветку или коммит. Наведите курсор на отключённое поле, чтобы увидеть причину.

Опции приложений
- Ansible: limit, теги, пропускаемые теги и опции установки Galaxy, см. Ansible.
- Terraform/OpenTofu/Terragrunt: автоматическое подтверждение и переопределение backend, см. Terraform/OpenTofu и HTTP backend.
Параллельные задачи
По умолчанию задачи одного шаблона выполняются последовательно. Чтобы разрешить одновременные запуски одного и того же шаблона, включите опцию «Allow parallel tasks» в настройках шаблона.
Образ исполнителя (раннеры Docker и Kubernetes)
Когда раннер проекта использует исполнитель Docker (Pro) или Kubernetes (Enterprise), каждая задача обычно выполняется в образе задания по умолчанию, заданном на раннере (например, semaphoreui/job:latest). Этот образ можно переопределить для отдельного шаблона.
- Откройте настройки шаблона
- Укажите в поле Executor image ссылку на образ контейнера (например,
my-registry/ansible:2.16илиsemaphoreui/job:latest) - Сохраните шаблон
Поведение:
- Эт о поле учитывают только исполнители раннера Docker и Kubernetes; локальный исполнитель его игнорирует
- Оставьте поле пустым, чтобы использовать образ раннера по умолчанию из
runner.executor.docker.imageилиrunner.executor.k8s.image - Очистка поля в интерфейсе убирает переопределение
Сценарии использования:
- Шаблоны, которым нужен другой набор инструментов (более старый Ansible, конкретная версия Terraform, дополнительные системные пакеты в собственном образе)
- Изолированные образы для шаблонов с повышенными требованиями к безопасности без изменения настройки по умолчанию для всего раннера
Настройки образа по умолчанию описаны в разделе Конфигурация раннера, а настройка исполнителей — в разделе Раннеры проекта.