Assicurarsi che il nodo esegua alless una certa versione del kernel?

Sto cercando di creare un ambiente di sviluppo utilizzando Vagrant, che dipende da alcune applicazioni in esecuzione all'interno di contenitori Docker.

L'ambiente richiesto è Ubuntu 12.04 LTS, che precise64 casella precise64 in Vagrant. Il problema è assicurare quanto segue:

  1. Viene installato il kernel Saucy LTS.
  2. Il kernel Saucy LTS è in esecuzione .

Sto provando a fornire la casella utilizzando Puppet e non riesco a capire un modo per assicurarsi che i seguenti comandi siano eseguiti:

 apt-get install linux-image-generic-lts-saucy linux-headers-generic-lts-saucy reboot 

Ovviamente dovrò riavviare la casella per caricare ed eseguire il nuovo kernel.

C'è un modo per definire questi elementi come dependencies in Puppet?

Sto cercando di fare qualcosa di simile:

 package { "lxc-docker": /* ... */ requires => Package["lts-kernel-saucy"] } 

Qualche idea su come posso fare questo?

Se apt-get è il burattino di gestione dei pacchetti che utilizza, è ansible provare quanto segue:

  # Create an arrays 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, } 

La soluzione migliore e più semplice è utilizzare una casella Vagrant che supporti Docker eseguendo il kernel corretto .