2012-10-08 45 views
4

我正在使用Vagrant和Puppet在Ubuntu上安裝Apache和PHP。不過,我在vagrant up期間收到以下錯誤。我認爲模板的路徑是正確的,那麼爲什麼錯誤?流浪漢/ Puppet ---確保:從現在開始改變失敗:無法設置現在確保:沒有這樣的文件或目錄

我使用的修改,以確保別的

錯誤之前apt-get update運行安裝here

←[1;35merr: /Stage[main]/Php/File[/etc/php5/apache2/apc.ini]/ensure: change from absent to present failed: Could not set 'present on ensure: No such file or dir ectory - /etc/php5/apache2/apc.ini.puppettmp_6187 at /tmp/vagrant-puppet/modules -0/php/manifests/init.pp:44←[0m

←[1;35merr: /Stage[main]/Php/File[/etc/php5/apache2/php.ini]/ensure: change from absent to present failed: Could not set 'present on ensure: No such file or dir ectory - /etc/php5/apache2/php.ini.puppettmp_6687 at /tmp/vagrant-puppet/modules -0/php/manifests/init.pp:36←[0m

/模塊/ PHP /艙單/ init.pp

file { "/etc/php5/apache2/php.ini": 
    ensure => present, 
    mode => 644, 
    content => template("php/etc/php5/conf.d/php.ini.erb"), 
    require => Package["php5"], 
    notify => Service["apache"]; 
} 

file { "/etc/php5/apache2/apc.ini": 
    ensure => present, 
    mode => 644, 
    content => template("php/etc/php5/conf.d/apc.ini.erb"), 
    require => [ Package["php5"], Package["php-apc"], Package["apache"] ], 
    notify => Service["apache"]; 
} 

模板

  • /modules/php/templates/etc/php5/conf.d/apc.ini.erb
  • /模塊/ PHP /模板的/ etc/PHP5/conf.d/php.ini.erb
+0

不保證答案,但要確保你的VirtualBox是最新的。這爲我解決了這個問題。 – MaxPRafferty

回答

1

您確定Package [「php5」]它爲您創建路徑嗎?

在我看來,它抱怨因爲/ etc/php5/apache2文件夾不存在,當它試圖從模板創建文件。

如果你要放棄你的戲夢人生方面,你可以找到戲夢人生進程ID和運行:

strace -v -f -ff -p $PID -o strace.log 

然後,再次運行代理,去戲夢人生並運行:

grep "etc/php5/apache2" strace.log.* 

如果戲夢人生沒關係,你會看到閱讀電話沒有錯誤,否則你會看到木偶大師在試圖打開文件時收到「沒有這樣的文件或目錄」。無論如何,因爲你我不認爲它是模板調用的問題,對我來說似乎沒問題。

11

只要確保目錄/ etc/php5/apache2存在。

file { [ "/etc", "/etc/php5", "/etc/php5/apache2" ]: 
    ensure => directory, 
    before => File['/etc/php5/apache2/php.ini'], 
} 

或者少一點木偶十歲上下

exec { "ensure /etc/php5/apache2": 
    command => "mkdir -p /etc/php5/apache2", 
    creates => "/etc/php5/apache2" 
} 

這一切都是因爲執行的順序對假設的可能。

更多信息@的puppet docs

+1

謝謝弗拉丹,這是一個非常有用的例子。 – Zouzias

+0

對於任何木偶新手來說,''before => File ['...']''File'和'['character'之間不能有空格。你會得到一個語法錯誤。 – Monkpit

相關問題