5

VagrantPuppetを使い始めたばかりです。Virtualbox を実行することはできますが、インストールされるソフトウェアを自動化したいと考えています。

私のVagrantfileには次のものがあります:

Vagrant::Config.run do |config|

    config.vm.box = "precise64"

    config.vm.forward_port 80, 9090
    config.vm.forward_port 27017, 27017

    config.vm.provision :puppet do |puppet|
     puppet.manifests_path = "manifests"
     puppet.manifest_file  = "default.pp"
    end

end

manifests/default.pp には次のものがあります。

Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }

class php5{
    package { "php5":
        ensure => present,
    }
}


include php5

ただし、実行するvagrant upと、次のエラー (スニペット) が表示されます。

[default] Running Puppet with /tmp/vagrant-puppet/manifests/default.pp...
stdin: is not a tty
No LSB modules are available.
warning: Could not retrieve fact fqdn
err: /Stage[main]/Php5/Package[php5]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install php5' returned 100: Reading package lists...

エラーがどこにあるのかよくわからないので、ここに役立つかもしれない詳細情報があります

ルビー版

$ ruby -v 
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

宝石のソース

$ gem sources 
*** CURRENT SOURCES ***

http://rubygems.org/

更新 1:この投稿に続いて、factorer をインストールし、puppet を正常に実行できるようになりましたが、主な問題はまだ発生しています。

更新 2:正解はマークされていますが、マニフェスト ファイル全体を共有したかったhttp://pastebin.com/LGNhVPV7

4

1 に答える 1

2

Puppet が「apt-get install」を実行しようとする前に VM が「apt-get update」を完了していないため、「apt-get install」エラーが発生している可能性があります。パッケージのインストールを要求した場合、Puppet は「apt-get update」を単独で処理しませんが、マニフェストでそれが発生する必要があることを十分に簡単に説明できます。

リーチ氏がhttp://johnleach.co.uk/words/771/puppet-dependencies-and-run-stagesの投稿で言及している適切なクラスを追加してみてください。これにより、パッケージがインストールされる前に「apt-get update」が実行されるようになります。

于 2012-07-11T05:12:40.920 に答える