Substituindo modelos de opsworks AWS … com Berksfile

Eu faço isso raramente e então quando tenho que substituir um modelo, esqueço coisas simples que me deixam coçando minha cabeça por horas , então estou compartilhando com você na esperança de perfurá-las em minha cabeça (e porque estou apenas um bom rapaz greg):

Em primeiro lugar, para substituir um modelo, você deve habilitar livros de receitas personalizados para sua pilha. Em seguida, você deve espelhar a estrutura de diretório da receita do AWS opsworks em seu repositório de livros de receitas personalizados. Por exemplo, digamos que eu queira substituir o modelo haproxy padrão. Começando com o diretório de nível superior do próprio repo, o caminho para o modelo de configuração haproxy é:

opsworks-cookbooks / haproxy / templates / default / haproxy.cfg.erb

… então, em meu repositório de livro de receitas personalizado, tenho que refletir a mesma estrutura:

your-custom-cookbook / haproxy / templates / default / haproxy.cfg.erb

Se você estiver apenas substituindo um modelo, não copie mais nada do repositório AWS, especialmente arquivos de receita * .rb. Isso causará erros. A única outra coisa de que você precisa é um arquivo metadata.rb no diretório raiz da pasta do livro de receitas que você está espelhando, por exemplo, no exemplo acima, no nível de diretório “haproxy”:

your-custom-cookbook/haproxy/metadata.rb

É assim que o fluxo de trabalho do chef AWS opsworks reconhece que o diretório contém o código do livro de receitas do Chef (“Eu sou um livro de receitas!”).

Mais um detalhe, que é importante se você estiver usando um Berksfile, que eu sou:
Atualize seu berksfile para indicar que o novo livro de receitas deve ser incluído:


cookbook
'haproxy', path: './haproxy'

Os documentos da AWS não mencionam essas coisas do Berksfile – provavelmente porque presumem que você sabe o que está fazendo, mas se você basicamente improvisar tudo como eu, talvez isso o ajude ^ _ ^