Mantendo seu AMI na versão mais recente com Chef

Criei alguns AMIs personalizados que construí usando uma receita do Chef. Levei um tempo para descobrir por que eles não estavam atualizando para a versão mais recente.

Acontece que a receita opscode-yum assumiu o controle de /etc/yum.conf, que é onde a Amazon especifica que o Yum deve estar procurando na versão mais recente, definindo $ releasever = latest

Adicione isso à sua receita do Chef e o Yum voltará a procurar os lançamentos mais recentes da Amazon:

ruby_block "reload-internal-yum-cache" do
block
{ Chef::Provider::Package::Yum::YumCache.instance.reload }
action
:nothing
end

execute
"yum-clean" do
command
"yum clean all"
action
:nothing
end

file
"/etc/yum/vars/releasever" do
content
"latest"
notifies
:run, "execute[yum-clean]", :immediately
notifies
:create, "ruby_block[reload-internal-yum-cache]", :immediately
end