Estoy tratando de aprovisionar máquinas virtuales automáticamente con Docker preinstalado.
Mi init.pp predeterminado se ve así:
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
}
El último comando exec regresa (creo que return 100 es el valor predeterminado para una actualización exitosa de apt-get):
info: / Stage [main] // Apt :: Ppa [ppa: dotcloud / lxc-docker] / Exec [add-apt-repository-ppa: dotcloud / lxc-docker]: Programación de actualización de Exec [apt_update] aviso: / Stage [main] / Apt :: Update / Exec [apt_update] / devuelve: ejecutado con éxito aviso: / Stage [main] / Apt :: Update / Exec [apt_update]: Activado 'actualizar' de 1 eventos
Sin embargo, cuando ssh en la caja docker no está instalada y ejecutándose apt-get install lxc-docker
, puedo instalarla. ¿Qué estoy haciendo mal? Parece que no puedo hacerlo funcionar con una multitud de configuraciones diferentes.
Exec['apt_update']
en sus paquetes instalados desde un PPA. Requerir el PPA antes del Paquete no impone la relación entre Exec y el Paquete.Y aquí hay una respuesta alternativa, idiomática usando
require
:fuente