Обнаружена "внутренняя ошибка службы" при загрузке кулинарных книг на сервер Chef, размещенный в контейнере Docker.

По какой-то причине в моей организации мы не можем напрямую использовать полное доменное имя сервера Chef. Все запросы к нему должны быть перенаправлены. Следовательно, мы должны выполнить настройку ниже в файле /etc/opscode/chef-server.rb.

api_fqdn "<some_other_ip>"

Это работало нормально до тех пор, пока однажды поваренные книги не могли быть загружены на один из серверов Chef, но все остальные команды ножа, такие как "проверка ножа ssl", "выбор ножа ssl" или "список поваренной книги ножа", могли быть успешно выполнены.

Проверил файл chef-server.rb и нашел две дополнительные строки.

bookshelf['vip'] = "https://<some_other_ip>:443"
bookshelf['external_url'] = "https://<some_other_ip>:443"

Книжная полка - это сервис, совместимый с Amazon Simple Storage Service (S3), используемый Chef для хранения кулинарных книг. Некоторые разработчики могут сделать это для экспериментов. Полученное исключение как ниже.

Uploading <some_cookbook> [0.10.12] ERROR: Server returned error 500 for https://<some_other_ip>/organizations/cobalt/sandboxes/6d8079e5b8c3bfcbf24b9fcc88020bd2, retrying 1/5 in 3s ERROR: Server returned error 500 for https://<some_other_ip>/organizations/cobalt/sandboxes/6d8079e5b8c3bfcbf24b9fcc88020bd2, retrying 2/5 in 8s ERROR: Server returned error 500 for https://<some_other_ip/organizations/cobalt/sandboxes/6d8079e5b8c3bfcbf24b9fcc88020bd2, retrying 3/5 in 9s ERROR: Server returned error 500 for https://<some_other_ip>/organizations/cobalt/sandboxes/6d8079e5b8c3bfcbf24b9fcc88020bd2, retrying 4/5 in 27s ERROR: Server returned error 500 for https://<some_other_ip>/organizations/cobalt/sandboxes/6d8079e5b8c3bfcbf24b9fcc88020bd2, retrying 5/5 in 51s ERROR: internal server error Response: internal service error

Не уверен, как это может повлиять, поскольку настройки задокументированы в Chef, и такие записи есть в StackOverflow (см. Принятый ответ).

Серверы Chef (12.2) размещаются в соответствующих док-контейнерах.

1 ответ

Дальнейшее расследование показало, что такие две дополнительные строки были вызваны ниже настроек в /var/opt/opscode/opscode-erchef/etc/app.config на сервере Chef.

{s3_url, "https://<some_other_ip>"},
{s3_external_url, "https://<some_other_ip>:443"},

Это отличается от других работающих серверов Chef, где две строки

{s3_url, "https://782492f20c53"},
{s3_external_url, host_header},

где 782492f20c53 - идентификатор контейнера докера (служит именем хоста внутри контейнера, найден как 127.0.0.1 782492f20c53 в файле /etc/hosts).

Вдохновленный этим, изменил настройки URL книжной полки в файле chef-server.rb на проблемном сервере Chef, как показано ниже.

bookshelf['vip'] = "https://a0a994456729"
bookshelf['external_url'] = :host_header

Ран chef-server-ctl reconfigure и затем поваренная книга была успешно загружена.

Не уверен в основной причине, так как я не опытный в сети. Думаю, это связано с маршрутизацией запросов, введенной с помощью Docker-контейнера.

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