Saya mencoba menyediakan VM secara otomatis dengan buruh pelabuhan yang sudah diinstal sebelumnya.
Init.pp default saya terlihat seperti:
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
}
Perintah exec terakhir kembali (pengembalian 100 adalah default untuk pembaruan apt-get yang berhasil saya pikir):
info: / Tahap [utama] // Apt :: Ppa [ppa: dotcloud / lxc-docker] / Exec [add-apt-repository-ppa: dotcloud / lxc-docker]: Penjadwalan pembaruan Exec [apt_update] pemberitahuan: / Tahap [utama] / Apt :: Perbarui / Exec [apt_update] / pengembalian: dieksekusi pemberitahuan berhasil: / Tahap [utama] / Apt :: Pembaruan / Exec [apt_update]: Dipicu 'refresh' dari 1 acara
Namun ketika saya ssh ke box docker tidak diinstal dan berjalan apt-get install lxc-docker
saya kemudian dapat menginstalnya. Apa yang saya lakukan salah? Sepertinya saya tidak bisa membuatnya bekerja dengan banyak konfigurasi yang berbeda.
Exec['apt_update']
paket Anda diinstal dari PPA. Mewajibkan PPA sebelum Paket tidak menegakkan hubungan antara Exec dan Paket.Dan berikut ini adalah alternatif, jawaban idiomatis menggunakan
require
:sumber