Я пытаюсь автоматически подготовить виртуальные машины с предустановленным докером.
Мой стандартный init.pp выглядит так:
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
}
Последняя команда exec возвращает (возвращение 100 по умолчанию для успешного обновления apt-get, я думаю):
info: / Stage [main] // Apt :: Ppa [ppa: dotcloud / lxc-docker] / Exec [add-apt-repository-ppa: dotcloud / lxc-docker]: Планирование обновления уведомления Exec [apt_update]: / Этап [main] / Apt :: Update / Exec [apt_update] / возвращает: успешно выполнено уведомление: / Stage [main] / Apt :: Update / Exec [apt_update]: вызвано «обновление» из 1 события
Однако, когда я ssh в окно Docker не установлен и работает, apt-get install lxc-docker
я могу установить его. Что я делаю неправильно? Я не могу заставить его работать с множеством разных конфигураций.
Exec['apt_update']
ваши пакеты были установлены из PPA. Требование PPA до того, как Пакет не навязывает отношения между Exec и Пакетом.И вот альтернативный, идиоматический ответ, используя
require
:источник