Шаблон / заявления шеф-повара с удаленным_файлом

Я пытаюсь создать сценарий chef, который загружает файл и передает содержимое загруженного файла в переменные шаблона, используя IO.read(загруженный файл), который внутренне загружает несколько файлов. Загруженный файл имеет определенный формат, такой как имя файла, URL, контрольная сумма и т. Д. Мне нужно снова использовать remote_file внутри шаблона на основе данных первого remote_file.

Поскольку удаленный файл не существует, я получаю ошибку во время компиляции

Errno::ENOENT
-------------
No such file or directory @ rb_sysopen - ....

Любые предложения, чтобы решить мой вариант использования?

1 ответ

Вам необходимо отложить чтение файла до времени схождения из-за двухпроходной модели. Прочитайте https://coderanger.net/two-pass/ для получения подробной информации о двухпроходной модели. В этом случае вы, вероятно, хотите что-то вроде variables foo: lazy { IO.read('something') } (при условии, что у вас работает Chef 13).

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