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

Устранение неполадок

1. Runner выдаёт ошибку 404

Как исправить

Getting 401 error code from Runner


2. Проблема Gathering Facts для localhost

Проблема может возникать в Semaphore UI, установленном через Snap или Docker.

4:10:16 PM
TASK [Gathering Facts] *********************************************************
4:10:17 PM
fatal: [localhost]: FAILED! => changed=false

Почему это происходит

Подробнее об использовании localhost в Ansible читайте в статье Implicit 'localhost'.

Ansible пытается собрать факты локально, но Ansible находится в ограниченном изолированном контейнере, который этого не позволяет.

Как это исправить

Есть два способа:

  1. Отключить сбор фактов:
- hosts: localhost
gather_facts: False
roles:
- ...
  1. Явно задать тип подключения ssh:
[localhost]
127.0.0.1 ansible_connection=ssh ansible_ssh_user=your_localhost_user

3. panic: pq: SSL is not enabled on the server

Это означает, что ваш Postgres не работает по SSL.

Как это исправить

Добавьте параметр sslmode=disable в файл конфигурации:

	"postgres": {
"host": "localhost",
"user": "postgres",
"pass": "pwd",
"name": "semaphore",
"options": {
"sslmode": "disable"
}
},

4. fatal: bad numeric config value '0' for 'GIT_TERMINAL_PROMPT': invalid unit

Это означает, что вы пытаетесь получить доступ по HTTPS к репозиторию, который требует аутентификации.

Как это исправить

  • Перейдите на экран Хранилище ключей.
  • Создайте новый ключ типа Login with password.
  • Укажите ваш логин для GitHub/BitBucket и т. д.
  • Укажите пароль. Для GitHub/BitBucket нельзя использовать пароль от учётной записи — вместо него следует использовать Personal Access Token (PAT). Подробнее здесь.
  • После создания ключа перейдите на экран Репозитории, найдите ваш репозиторий и укажите ключ.

5. Git clone или pull периодически завершается ошибкой

В логах задач могут появляться сообщения вроде Git pull failed (...), retrying in 2s, за которыми следует либо успех, либо окончательная ошибка после нескольких попыток.

Почему это происходит

Git-сервер был временно недоступен или вернул временную ошибку. Semaphore автоматически повторяет операции clone и pull, прежде чем пометить задачу как неудачную.

Как это исправить

  1. Временные сбои: обычно проходят сами. Semaphore повторяет попытки до git_attempts раз (по умолчанию 4) с экспоненциальной задержкой.
  2. Частые сбои: увеличьте git_attempts в конфигурации или задайте SEMAPHORE_GIT_ATTEMPTS.
  3. Немедленные, постоянные сбои: проверьте URL репозитория, ветку, ключи доступа и сетевую доступность.

Подробности настройки см. в разделе Операции Git.


6. unable to read LDAP response packet: unexpected EOF

Скорее всего, вы пытаетесь подключиться к серверу LDAP небезопасным способом, тогда как он ожидает защищённое соединение (через TLS).

Как это исправить

Включите TLS в файле config.json:

...
"ldap_needtls": true
...

7. LDAP Result Code 49 "Invalid Credentials"

У вас неверный пароль или binddn.

Как это исправить

Используйте утилиту ldapwhoami и проверьте, работает ли ваш binddn:

ldapwhoami\
-H ldap://ldap.com:389\
-D "CN=/your/ldap_binddn/value/in/config/file"\
-x\
-W

Она интерактивно запросит пароль и должна вернуть код 0 и вывести указанный DN.

Также вы можете прочитать следующие статьи:


8. LDAP Result Code 32 "No Such Object"

Скоро будет.