Я использую часть рабочего процесса Chef Automate для доставки кулинарных книг на мой сервер Chef. Я успешно загрузил 2 поваренные книги на сервер Chef через конвейер.
На сервере Chef:apache
версии 0.2.3another_test
версии 0.1.1
Я хотел внести изменения в apache
, чтобы они зависели от другого_теста, поэтому я обновил метаданные для apache
и поднял версию до 0.2.4
.
Файл метаданных для apache
имеет depends 'another_test'
, а another_test
не имеет зависимостей.
Файл Berksfile для apache
есть
source :chef_server
source 'https://supermarket.chef.io'
metadata
Когда я делаю вызов для проверки доставки, конвейер запускается, но я получаю сбой на этапе модульного тестирования этапа проверки.
execute[unit_rspec_apache] action run
================================================== ===============================
Ошибка выполнения действия `run` над ресурсом 'execute[unit_rspec_apache]' === ================================================== ===========================
Mixlib::ShellOut::ShellCommandFailed
---------- --------------------------
Ожидается завершение процесса с [0], но получено '1'
---- Начать вывод rspec --format document --color ----
STDOUT: [2017-11-21T14:06:57+00:00] ОШИБКА: соединение отказало в подключении к https://localhost/universe, повторите попытку 1/5
[2017-11-21T14:07:02+00:00] ОШИБКА: соединение отказало в соединении на https://localhost/universe, повторите попытку 2/5
[2017-11-21T14:07:07 +00:00] ОШИБКА: соединение отказало в подключении к https://localhost/universe, повторите попытку 5 марта
[2017-11-21T14:07:12+00:00] ОШИБКА: соединение отказало в подключении к https://localhost/universe, повторите попытку 5/4
[2017-11-21T14:07:17+00:00] ОШИБКА: соединение отказало в подключении к https://localhost/universe, повторите попытку 5/5Произошла ошибка в хуке `before(:suite)`. Сбой/ошибка: поднять NoSolutionError.new(требования, e)
Berkshelf::NoSolutionError: Невозможно выполнить ограничения для несуществующего пакета Another_test из-за ограничения решения (apache = 0.2.4). Ограничения решения, которые могут привести к ограничению other_test: [(apache = 0.2.4) -> (another_test >= 0.0.0)]
Отсутствующие артефакты: Another_test
Требование, которое невозможно удовлетворить: (apache = 0.2 .4)
Не удалось найти решение для требований: apache (0.2.4)
Из-за этого сбоя новая версия apache 0.2.4 никогда не загружается на сервер Chef.
РЕДАКТИРОВАТЬ: я протестировал использование зависимости от супермаркета, и он проходит этап проверки. Итак, у меня было depends 'java'
в apache, и оно загружается нормально. Проблема начинается, когда я полагаюсь на кулинарную книгу, которая приходит с моего сервера шеф-повара.
РЕДАКТИРОВАТЬ 2: я могу войти в бегун и сделать knife cookbook list
. Это доказывает мне, что раннер может получить доступ к серверу шеф-повара и посмотреть, какие кулинарные книги там существуют. Я также попытался изменить файл Berksfile для apache
, чтобы вместо source :chef_server
было source 'https://<full-url-to-chef-server/organizations/myorg'
.
:chef_server
в Berks дает сбой, потому что Workflow не знает о вашем сервере Chef (по крайней мере, на этом этапе). Как вы ожидаете, что он настроит конфигурацию knife.rb? - person coderanger   schedule 21.11.2017