Форман: как тестировать / отображать шаблоны инициализации

Я установил Foreman на тестовую виртуальную машину и хочу создать несколько пользовательских файлов кикстарта. Я понимаю, что Форман отображает шаблоны при создании хоста. Но в случае ошибки, типа, отсутствующей переменной и т. Д. Установка завершится неудачно.

Итак, как я могу протестировать свои шаблоны, не пытаясь установить новую виртуальную машину?

Очевидно, контрпродуктивно начинать новую сборку всякий раз, когда я хочу внести изменения в свои шаблоны или фрагменты.

2 ответа

Над редактором шаблонов есть небольшая кнопка " Просмотр" - выберите ее и в раскрывающемся меню справа выберите хост, для которого вы хотите отобразить шаблон.

Потребуется управляемый хост с той же операционной системой, поэтому его необходимо создать перед предварительным просмотром шаблона (настроен для предоставления с помощью нового хоста, а не с помощью Puppet или загрузки фактов).

Представленная версия шаблона будет показана так:

Снова выберите вкладку " Вход ", и вы можете вернуться к редактированию шаблона. Все это происходит без необходимости сохранять + повторно посетить страницу редактирования. При предварительном просмотре отрендеренного шаблона изменения не сохраняются, только при сохранении.

Также см. Обзор релиза Foreman 1.9 - предварительный просмотр шаблона для короткого экрана, демонстрирующего эту функцию.

Чтобы проверить синтаксис правильный

erb -P -x -T '-' template.erb | ruby -c

Чтобы увидеть, что написано из шаблона, сложнее, но вы можете посмотреть, чтобы завершить этот скрипт ruby

require 'erb'
require 'ostruct'

class ErbalT < OpenStruct
  def render(template)
    ERB.new(template).result(binding)
  end
end

et = ErbalT.new({ :kernel => '4.8.4', 'os' => 'Linux' })
puts et.render(File.read(PATH_TO_TEMPLATE)) 

В зависимости от того, какой шаблон вы хотите протестировать, вам необходимо отправить в качестве параметров все ожидаемые переменные.

Существует также один ответ, более специфичный для шаблонов erb - см. https://stackoverflow.com/questions/8954706/render-an-erb-template-with-values-from-a-hash

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