Executando o 'apt-get upgrade' com o Chef Solo

4

Estou usando o Chef Solo para provisionar uma VM do Vagrant com base na caixa "Bento" do Opscode para o Ubuntu 12.04. Quando é feito o provisionamento e eu o SSH pela primeira vez, o MOTD me diz que há pacotes e atualizações de segurança. Em seguida, executo sudo apt-get upgrade manualmente, o que remove a mensagem nos logins subseqüentes. Existe uma maneira de automatizar essa etapa com o Chef? O livro de receitas "apt" não parece lidar com isso. Todas as minhas pesquisas do Google encontram coisas apenas sobre apt-get update , mas não apt-get upgrade . Eu poderia apenas executar o comando apt-get na minha receita do Chef, mas durante o processo de atualização, há uma pseudo-GUI em uma tela rosa onde eu tenho que selecionar drives para instalação (eu acho que isso é chamado GRUB, eu sou novo para o Ubuntu) e não sei como essa parte pode ser automatizada com o Chef.

    
por Jimmy Cuadra 16.02.2013 / 22:57

3 respostas

5

Acabei de me deparar com este problema com o chef + vagrant e descobri o seguinte que funcionou para mim:

sudo dpkg-reconfigure -plow grub-pc

Isso permite que você reconfigure o grub-pc e selecione o dispositivo (se houver) no qual deseja instalar o grub. Definir um dispositivo como padrão aqui deve permitir uma atualização que inclua o grub para não solicitar uma seleção de dispositivo. Neste ponto, você poderia criar uma nova caixa vagrant e usá-la como padrão.

ou

Para executar um upgrade do apt-get / dist-upgrade sem ser solicitado, você pode usar:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
  • DEBIAN_FRONTEND=noninteractive usa a resposta padrão para qualquer solicitação.
  • Dpkg::Options::="--force-confdef" garante que o dpkg apenas sobrescreva os arquivos de configuração que você não modificou
  • Dpkg::Options::="--force-confold" garante que o arquivo de configuração atual não seja sobrescrito. Novos arquivos de configuração são criados com o sufixo .dpkg-dist.
por 26.02.2013 / 20:44
2

Adicionar "-y" passará pelos prompts.

sudo apt-get upgrade -y

Você deve fazer isso antes da execução do chef, porque o chef pode ter colocado em cache as versões do pacote no banco de dados do apt.

    
por 17.02.2013 / 05:28
0

De acordo com o próprio jtimberman, você não deve executar o apt-get upgrade automaticamente.

A maneira recomendada do opscode de atualizar é pacote por pacote, usando o recurso de pacote.

package "php5-curl" do
  action :upgrade
end

Para mais detalhes, leia Não corra apt-get upgrade automaticamente no Chef

    
por 18.10.2013 / 01:03