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

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

api_fqdn "<some_other_ip>"

Это работало нормально, пока однажды не удалось загрузить кулинарные книги на один из серверов Chef, но все остальные команды Knife, такие как «Knife ssl check», «Knife ssl fetch» ​​или «Knight Cookbook list», могли быть успешно выполнены.

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

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

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

Загрузка [0.10.12]

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

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

Загрузка [0.10.12]

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

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

Загрузка [0.10.12] ОШИБКА: сервер вернул ошибку 500 для https: // / organization / cobalt / sandboxes / 6d8079e5b8c3bfcbf24b9fcc88020bd2, повторная попытка 1/5 за 3 секунды ОШИБКА: сервер вернул ошибку 500 для https: // / organization / cobalt / sandboxes / 6d8079e5b8c3bfcbf24b9fcc88020bd2, повторная попытка 2/5 за 8 с. ОШИБКА: сервер вернул ошибку 500 для https: // / organization / cobalt / sandboxes / 6d8079e5b8c3bfcbf24b9fcc88020bd2, повторная попытка 4/5 через 27 секунд. ОШИБКА: сервер вернул ошибку 500 для https: // / organization / cobalt / sandboxes / 6d8079e5b8c3bfcbf24b9fcc88020bd2, повторная попытка 5/5 через 51 с. ОШИБКА: внутренняя ошибка сервера Ответ: внутренняя служебная ошибка

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

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

0
задан 13 April 2017 в 15:14
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, перенастроил , после чего кулинарная книга была успешно загружена.

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

0
ответ дан 24 November 2019 в 05:27

Теги

Похожие вопросы