Linux kernel 确保节点至少运行某个内核版本?
我试图使用Vagrant创建一个开发环境,它依赖于Docker容器中运行的某些应用程序 所需的环境是Ubuntu12.04LTS,它映射为Vagrant中的Linux kernel 确保节点至少运行某个内核版本?,linux-kernel,ubuntu-12.04,puppet,docker,Linux Kernel,Ubuntu 12.04,Puppet,Docker,我试图使用Vagrant创建一个开发环境,它依赖于Docker容器中运行的某些应用程序 所需的环境是Ubuntu12.04LTS,它映射为Vagrant中的precise64框。问题在于确保以下几点: 安装了Saucy LTS内核 Saucy LTS内核正在运行 我正在尝试使用Puppet配置该框,但我无法找到确保执行以下命令的方法: apt-get install linux-image-generic-lts-saucy linux-headers-generic-lts-saucy reb
precise64
框。问题在于确保以下几点:
apt-get install linux-image-generic-lts-saucy linux-headers-generic-lts-saucy
reboot
我显然需要重新启动这个盒子,让它加载并运行新内核
有没有办法在Puppet中将这些项定义为依赖项
我想做这样的事情:
package { "lxc-docker":
/* ... */
requires => Package["lts-kernel-saucy"]
}
关于如何实现这一点,您有什么想法吗?如果包管理器傀儡使用的是
apt get
,那么您可以尝试以下方法:
# Create an array of package names that need to be installed
$mypack = [ "linux-image-generic-lts-saucy", "linux-header-generic-lts-saucy", "lts-kernel-saucy" ]
# Install all the packages
package { $mypack :
ensure => installed,
}
# Install other package that depends on the packages above :
package { "lxc-docker" :
ensure => installed,
requires => Package[$mypack],
}
# Create an `exec` that will reboot the machine if a new package is installed
# `refreshonly` sits there waiting for something new to happen
exec { "reboot_machine" :
command => "shutdown -r now",
path => "/bin:/usr/sbin:/sbin:/usr/local/sbin",
subscribe => Package ["lxc-docker"],
refreshonly => true,
}
这里最好、最简单的解决方案是