Содержание


Функции

Запись журналов активности и задач в файл (PRO)

Semaphore Pro теперь поддерживает запись журналов активности и задач в файл. Чтобы включить это, добавьте следующую конфигурацию в ваш config.json:

{
  "log": {
    "events": {
      "enabled": true,
      "logger": {
        "filename": "./events.log"
      }
    },
    "task": {
      "enabled": true,
      "logger": {
        "filename": "./tasks.log"
      }
    }
  }
}

Или вы можете сделать это, используя следующие переменные окружения:

export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOG_PATH=./tasks.log
export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOG_PATH=./tasks.log

Каждая строка в файле имеет следующий формат:

2024-01-03 12:00:34 user=234234 object=template action=delete ...

Запись в файл также поддерживает ротацию. Более подробная информация доступна в документации.

Страница токенов API

Просмотр необработанных журналов задач

Теперь вы можете открыть сырой журнал задачи, нажав кнопку RAW LOG в правом нижнем углу окна журнала задачи.

Очистка кэша проекта и исполнителя

Semaphore теперь предоставляет вам больше контроля над управлением кэшем.

Ранее неиспользуемый кэш автоматически очищался при удалении шаблонов или проектов. Однако в некоторых случаях остатки кэша могли оставаться и храниться бесконечно.

С новой функцией Очистка кэша вы можете вручную очистить:

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

Переопределение ветки в шаблонах и задачах

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

В качестве альтернативы включите опцию Запрашивать ветку при выполнении, чтобы выбирать ветку каждый раз, когда вы запускаете задачу.

Новая переменная окружения для конфигурации OIDC провайдера

Мы представили новую переменную окружения: SEMAPHORE_OIDC_PROVIDERS для настройки провайдеров OpenID Connect (OIDC).

Это особенно полезно при запуске Semaphore внутри контейнера Docker.

Переменная должна содержать действительный JSON в следующем формате:

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // дополнительные поля...
  }
}'

Новая структура временных директорий

Мы улучшили структуру временных директорий, введя директории для каждого проекта. Теперь у каждого проекта есть собственная выделенная папка в директории tmp_path.

Это изменение упрощает управление и очистку кэша, когда проект удаляется.

Кроме того, директория инвентаря для шаблонов теперь следует четкому формату именования, например: tmp_path/project_0/repository_1_template_2_inventory_3 Эта структура помогает избежать клонирования инвентарного репозитория при каждом выполнении задачи, улучшая производительность и уменьшая избыточность.

Возможность вручную добавлять внешних (LDAP и OIDC) пользователей

Теперь вы можете добавлять пользователей LDAP и OIDC в Semaphore до того, как они войдут в систему в первый раз.

Это позволяет вам заранее настраивать их разрешения и назначать их на проекты.

Вам нужны права администратора, чтобы добавить пользователя через веб-интерфейс (флажок Внешний), или вы можете использовать CLI с флагом --external:

semaphore user add \
  --external \
  --login john \
  --name John \
  --email [email protected] \
  --password=changeme

Значения по умолчанию для переменных опроса

Теперь вы можете устанавливать значения по умолчанию для переменных опроса, что упрощает предварительное заполнение общих вводов во время выполнения задач.

Поддержка TLS для соединений с SMTP сервером

Semaphore теперь поддерживает безопасные TLS соединения при отправке электронных писем через SMTP сервер. Пример конфигурации:

{
  "email_alert": true,
  "email_sender": "[email protected]",
  "email_host": "smtp.example.com",
  "email_username": "user123",
  "email_password": "changeme",
  "email_tls": true,
  "email_port": "587",
  "email_tls_min_version": "1.1" // необязательный (по умолчанию 1.2)
}

Настраиваемые уровни подробности Ansible playbook

Теперь вы можете выбрать желаемый уровень подробности при выполнении задач Ansible playbook, что помогает в отладке и устранении неполадок.

Chroot поддержка и выполнение задач от имени другого пользователя

Semaphore теперь может выполнять задачи в среде chroot и от имени указанного пользователя, улучшая безопасность и изоляцию. Пример конфигурации:

{
  "process": {
    "chroot": "/opt/semaphore/chroot",
    "user": "semrun"
  }
}

Пример переменных окружения:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Поддержка аутентификации вебхуков Bitbucket

Интеграции теперь можно настраивать с использованием аутентификации вебхуков Bitbucket.

Настройки часового пояса расписаний

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

{
  "schedule": {
    "timezone": "Asia/Calcutta"
  }
}

Или с использованием следующей переменной окружения:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Исправления ошибок