Проблема с обновлением Chef12 до Chef13 - PullRequest
0 голосов
/ 25 мая 2018

Используя chef-solo на Chef12, я предполагаю, что путь /opt/chef/embedded/bin добавлен к системной переменной PATH, и различные библиотеки, такие как openssl и makedepend, работают по этому пути.

Обновление до Chef13 с помощьюта же команда chef-solo, я получаю ошибки, такие как -

  * execute[generate ca.pem] action run

================================================================================
Error executing action `run` on resource 'execute[generate ca.pem]'
================================================================================

Errno::ENOENT
-------------
No such file or directory - openssl

Resource Declaration:
      command "openssl x509 -req -in hostname.csr -CA /path/to/ca.pem -CAkey /path/to/ca.key -CAcreateserial -out hostname.cer -days 512 -sha256"

Системная информация -

------------------------
chef_version=13.6.4
platform=oracle
platform_version=7.4
ruby=ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
program_name=chef-solo worker: ppid=627;start=06:32:26;
executable=/opt/chef/bin/chef-solo

В текущем PATH сейчас есть только /usr/bin и другая системная корзинакаталоги, но не /opt/chef/embedded/bin.

Я изучил enforce_path_sanity, но мы не используем кухонные файлы. (Ссылка - https://github.com/chef/chef/issues/3705)

Любой другой способзаставить клиент chef-solo использовать встроенную библиотеку?

1 Ответ

0 голосов
/ 25 мая 2018

Это поведение было изменено в клиенте Chef 13. Это больше не используется по умолчанию для обеспечения безопасности пути.Причина этого заключается в том, что установка директории встроенного бина chef как части пути может привести к запуску неожиданной версии бинарного файла, если у пользователя есть такой же бинарный файл в другом месте.

Существует несколько способов, которыми вы могли быпродолжить.Вы можете установить пакет openssl (рекомендуется), вы можете указать абсолютный путь к необходимому двоичному файлу или вы можете установить enforce_path_sanity в true в вашем конфигурационном файле, чтобы вернуть это поведение к тому, с чем вы знакомы (client.rb, solo.rb или иным образом).

...