Foreman: como testar / renderizar modelos de provisionamento

1

Instalei o Foreman em uma VM de teste e quero criar alguns arquivos de kickstart personalizados. Eu entendo que o Foreman processa os modelos durante a criação do host. Mas no caso de um erro, tipo, variável que está faltando etc, a instalação falhará.

Então, como posso testar meus modelos sem tentar instalar uma nova VM?

Obviamente, é contraproducente começar uma nova compilação toda vez que eu quiser fazer alterações em meus modelos ou snippets.

    
por Peter 22.10.2016 / 23:19

2 respostas

3

Acima do editor de templates existe um pequeno botão Preview - selecione isso, e no menu suspenso à direita, selecione o host para o qual você deseja renderizar o template.

Um host gerenciado com o mesmo sistema operacional será necessário, portanto, ele deve ser criado antes da visualização do modelo (configurado para provisionamento por meio do New Host , não criado por uploads de fantoches ou fatos).

A versão renderizada do modelo será mostrada da seguinte forma:

SelecioneaguiaEntradanovamenteevocêpodevoltaraeditaromodelo.Issotudoacontecesemprecisarsalvar+visitarnovamenteapáginadeedição.Nenhumaalteraçãoémantidaquandovocêvisualizaomodelorenderizado,somentequandovocêsalva.

Vejatambém destaque do lançamento do Foreman 1.9 - previews de modelos para um breve screencast mostrando o recurso.

    
por 24.10.2016 / 09:32
1

Para verificar se a sintaxe está correta

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

Para ver o que está escrito a partir de um modelo é mais complicado, mas você pode olhar para completar este script 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)) 

Dependendo do modelo que você deseja testar, é necessário enviar como parâmetros todas as variáveis esperadas.

Existe também uma resposta mais específica para os modelos erb - consulte link

    
por 23.10.2016 / 04:19