Estou tentando provisionar VMs automaticamente com docker pré-instalado.
Meu init.pp padrão se parece com:
class { 'apt':
always_apt_update => true,
}
package { [
#'build-essential',
#'vim',
#'curl',
#'zsh',
#'git-core',
#'htop',
#'wget',
#'linux-image-generic-lts-raring',
'python-software-properties'
#'lxc-docker'
]:
ensure => 'installed',
}
apt::ppa { 'ppa:dotcloud/lxc-docker':}
# refresh apt source
exec { "apt-update":
command => "/usr/bin/apt-get update && apt-get install lxc-docker --force-yes",
returns => 100
}
O último comando exec retorna (o retorno 100 é o padrão para uma atualização bem-sucedida do apt-get, eu acho):
info: / Stage [main] // Apt :: Ppa [ppa: dotcloud / lxc-docker] / Exec [add-apt-repository-ppa: dotcloud / lxc-docker]: agendando a atualização do aviso do Exec [apt_update]: / Estágio [principal] / Apt :: Atualizar / Exec [apt_update] / retorna: executado com êxito aviso: / Estágio [principal] / Apt :: Atualização / Exec [apt_update]: 'Atualização' acionada de 1 eventos
No entanto, quando o ssh na caixa de encaixe não está instalado e em execução apt-get install lxc-docker
, posso instalá-lo. O que estou fazendo errado? Não consigo fazê-lo funcionar com uma infinidade de configurações diferentes.
Exec['apt_update']
dos seus pacotes instalados a partir de um PPA. Exigir o PPA antes do pacote não impõe o relacionamento entre o Exec e o pacote.E aqui está uma resposta alternativa e idiomática usando
require
:fonte