Почему Sensu-клиент не запускается в докере на Travis?

Эта Ansible роль была создана, и этот.travis.yml был использован в качестве примера для тестирования роли. Все сервисы могли запускаться, кроме sensu-client.

Попытки решить проблему

Для решения проблемы в travis был добавлен шаг отладки. Когда сборка завершена, была выдана следующая ошибка:

The command "sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test-${SITE}.yml | grep -q 'changed=0.*failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1)

" exited with 1.

0.07s$ sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm sudo systemctl status sensu-client.service -l

● sensu-client.service - LSB: Sensu monitoring framework client

   Loaded: loaded (/etc/rc.d/init.d/sensu-client)

   Active: failed (Result: exit-code) since Mon 2016-08-08 00:18:20 UTC; 131ms ago

     Docs: man:systemd-sysv-generator(8)

  Process: 1534 ExecStart=/etc/rc.d/init.d/sensu-client start (code=exited, status=1/FAILURE)

Aug 08 00:18:19 c6354976113c systemd[1]: Starting LSB: Sensu monitoring framework client...

Aug 08 00:18:19 c6354976113c sensu-client[1534]: /etc/init.d/sensu-service: line 71: /etc/init.d/functions: No such file or directory

Aug 08 00:18:19 c6354976113c sensu-client[1534]: Starting sensu-client/etc/init.d/sensu-service: line 79: daemon: command not found

Aug 08 00:18:20 c6354976113c sensu-client[1534]: /etc/init.d/sensu-service: line 88: echo_failure: command not found

Aug 08 00:18:20 c6354976113c systemd[1]: sensu-client.service: control process exited, code=exited status=1

Aug 08 00:18:20 c6354976113c systemd[1]: Failed to start LSB: Sensu monitoring framework client.

Aug 08 00:18:20 c6354976113c systemd[1]: Unit sensu-client.service entered failed state.

Aug 08 00:18:20 c6354976113c systemd[1]: sensu-client.service failed.

Когда развернутая роль развернута в удаленной системе, запускается Sensu-клиент, но в Travis происходит сбой, хотя другие службы могут запускаться.

1 ответ

Решение

краткий

initscripts посылка пропала. Это было найдено после сравнения файлов, которые находятся в /etc/init.d в локальной системе с теми, которые находятся в док-контейнере, используемом Travis. После запроса /etc/init.d/functions стало ясно, какой пакет нужно было установить.

Подробный

Похоже, что файлы отсутствуют в /etc/init.dт.е.

Aug 08 00:18:19 c6354976113c sensu-client[1534]: /etc/init.d/sensu-service: 
line 71: /etc/init.d/functions: No such file or directory

Это правда? Чтобы проверить, что был добавлен еще один шаг отладки: ls /etc/init.d, Результат таков:

$ sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ls /etc/init.d

README  sensu-api  sensu-client  sensu-server  sensu-service  uchiwa

functions действительно отсутствует. Этот пост указал, что initscripts должен быть установлен. Когда этот пакет был добавлен в Dockerfile, и сборка снова запустилась, все прошло успешно.

Другие вопросы по тегам