Melhores práticas do chef - avaliando/escolhendo um livro de receitas

Melhores práticas do chef - avaliando/escolhendo um livro de receitas

Obviamente, uma das coisas mais legais do Chef é reutilizar componentes comprovados por meio de livros de receitas, especialmente por meio da abordagem do livro de receitas wrapper.

Porém, como você escolhe o livro de receitas para embrulhar? Alguns exemplos que desperdiçaram muito do meu tempo.

  • um livro de receitas que possui uma configuração erb com sinalizadores obsoletos codificados, não apenas obsoletos. O serviço rejeita o arquivo de configuração. Nota: pelo que entendi, agrupar um modelo corrigido erb não é trivial, a menos que você clone e mantenha tudo.

  • um livro de receitas que verifica versões do Ubuntu até 9.0.4, parece não fazer nada acima disso e refere-se ao diretório /etc/event.d/ obsoleto.

  • os livros de receitas têm forte acoplamento com ferramentas de supervisão de processos, como runit ou bluepill. Isso também é causa de dores de cabeça se sua ferramenta preferida não estiver na lista e você não puder se ajustar a ela.

Tenho tendência a usar livros de receitas do supermercado.chef.io até agora, e esses funcionam principalmente. Exceto que seu livro de receitas para o serviço que desejo parece não ter manutenção e está para adoção.

Algumas ideias:

  • verifique os commits recentes do github/horários da última atualização. Mas, e se simplesmente funcionar? Então não deveria ser atualizado.

  • estrelas. mas e se todas as estrelas tivessem sido emitidas há muito tempo, enquanto o livro de receitas estivesse atualizado?

  • verifique se há problemas no github que não estão sendo resolvidos. Pode ser melhor.

  • veja receitas e atributos com antecedência. Funciona melhor se você já conhece a configuração do software de destino.

  • observe o número de colaboradores e avalie se é um projeto paralelo rápido ou se tem probabilidade de permanecer mantido.

  • executá-lo e observar os tipos de erros. Todos os que escolhi acima me parecem livros de receitas que não rastreiam atualizações recentes no sistema operacional ou no programa que estão gerenciando, mas não têm flexibilidade baseada em atributos para permitir isso.

  • existe um site de classificação em algum lugar? Pesquisando no Google isso me trouxe sites de culinária

Desculpe, percebo que esta questão é de natureza ampla. Mas certamente, se a reutilização é um objetivo do ecossistema Chef, então escolher criteriosamente o melhor livro de receitas da comunidade para embrulhar é um ingrediente chave para o sucesso do usuário final. Além de quaisquer habilidades técnicas no uso do próprio Chef.

Como você faz isso? Quais são suas heurísticas?

O grande número de livros de receitas do tipo "eu também" no github me faz pensar que isso énãoum problema resolvido.

Responder1

Pessoalmente, começo olhando a quantidade de downloads no supermercado e depois olhando diretamente a página do github. Se a fonte não estiver no controle de versão pública, eu sigo em frente.

Ao examinar o código, eu simplesmente folheio rapidamente me perguntando as seguintes perguntas:

a) este livro de receitas faz apenas uma coisa

Se for um livro de receitas que instala um aplicativo, é tudo o que quero que ele faça. Não quero que isso mexa com o resto do sistema. (ex.: tocar discos físicos, volumes ebs, etc...)

b) se eu usar este livro de receitas, ele será extensível

Se for um livro de receitas de biblioteca expondo recursos, quero que esses recursos forneçam uma quantidade adequada de controle sobre quaisquer sub-recursos que ele emprega. Não suporto um recurso que cria um modelo para um caso de uso restrito, mas não me permite modificar a fonte do modelo ou as variáveis ​​do modelo de forma adequada.

Se for um livro de receitas baseado em receitas, quero que a maioria dos bits relevantes sejam configuráveis ​​por meio de atributos. Não me importo totalmente com livros de receitas embalados, mas ficarei muito mais feliz se puder definir alguns atributos em vez de ter que envolver muito os recursos de outros.

informação relacionada