По некоторым причинам в моей организации мы не можем напрямую использовать полное доменное имя сервера 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 для хранения кулинарных книг. Кто-то из разработчиков мог сделать это для экспериментов. Приведенное ниже исключение.
Загрузка
bookshelf['vip'] = "https://<some_other_ip>:443"
bookshelf['external_url'] = "https://<some_other_ip>:443"
Книжная полка - это сервис, совместимый с Amazon Simple Storage Service (S3), используемый Chef для хранения кулинарных книг. Кто-то из разработчиков мог сделать это для экспериментов. Полученное исключение показано ниже.
Загрузка
bookshelf['vip'] = "https://<some_other_ip>:443"
bookshelf['external_url'] = "https://<some_other_ip>:443"
Книжная полка - это сервис, совместимый с Amazon Simple Storage Service (S3), используемый Chef для хранения кулинарных книг. Кто-то из разработчиков мог сделать это для экспериментов. Полученное исключение показано ниже.
Загрузка
Не уверен, как это может повлиять, поскольку настройки задокументированы на Chef , и такие записи также есть на StackOverflow (см. Принятый ответ).
Серверы Chef (12.2) размещаются в соответствующих контейнерах докеров.
Дальнейшее расследование показало, что такие две дополнительные строки вызывали следующие настройки в /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, перенастроил
, после чего кулинарная книга была успешно загружена.
Не уверен в основной причине, так как у меня нет опыта работы в сети. Думаю, это связано с маршрутизацией запросов, введенной с помощью контейнера докеров.