2017-03-16 38 views
-1

我希望能用木偶來管理我的rc文件(即在工作和家庭之間共享配置文件)。我將我的rc文件保存在subversion版本庫中。有些機器,我有sudo特權,有些我沒有。沒有一臺機器在同一個網絡上。Squelch木偶狀態chown

我有一個簡單的木偶文件:

class bashResources ($home, $svn) { 
    file { "$home/.bash" : 
     ensure => 'directory', 
    } 

    file { "$home/.bash/bashrc.d" : 
     ensure => 'directory', 
    } 

    file { "$home/.bash/bashrc.d/bashrc" : 
     ensure => present, 
     target => "$home/$svn/rc/bashrc", 
    } 
} 

node 'ubuntuwgu290' { 
    class { 'bashResources': 
     home => '/home/dshaw', 
     svn => 'mysvn', 
    } 
} 

我有一個簡單的配置文件,我使用來壓制一些錯誤:

[main] 
report=false 

當我運行的傀儡,我得到一個惱人關於不能執行chown的錯誤:

[email protected]:~/mysvn/rc$ puppet apply rc.pp --config ./puppet.conf 
Notice: Compiled catalog for ubuntuwgu290.maplesoft.com in environment production in 0.12 seconds 
Error: Failed to apply catalog: Operation not permitted @ rb_file_chown - /home/dshaw/.puppet/var/state/state.yaml20170316-894-rzkggd 
Error: Could not save last run local report: Operation not permitted @ rb_file_chown - /home/dshaw/.puppet/var/state/last_run_summary.yaml20170316-894-l9embs 

我試圖通過添加來壓制錯誤到我的配置文件,但它沒有生效。

我該如何壓制這些錯誤?或者,是否有更輕巧的工具來管理rc文件?

感謝, 德里克

+0

爲什麼你沒有寫入主目錄的權限? –

+0

我有寫入權限到我的主目錄。從輸出推斷,這是一個失敗的chown。 – user1024203

回答

0

錯誤是試圖管理/home/dshaw/.puppet自己的元數據相關的木偶,沒有任何參加木偶的目錄管理的文件。即使您以普通用戶身份運行Puppet,這通常也不是問題。實際上,支持這種事情是每用戶Puppet元數據存在的原因之一。

是木偶試圖chown已經不屬於你了(否則木偶不會試圖chown他們)的文件,但它們應該屬於你,這裏的「你」指的傀儡進程的(E) UID和(e)GID。您可以通過刪除Puppet的狀態目錄來解決問題,並讓它在下一次運行中重建它。或者,您可能可以執行或安排諸如Puppet正在嘗試執行的手動chown。另一方面,目前還不清楚這種情況是如何產生的,我能想到的一些機制會使這些建議無效。

+0

我想我已經發現了錯誤的原因。我的主目錄在nfs上。一個簡單的chown以root身份失敗:'dshaw @ ubuntuwgu290:〜$ sudo chown dshaw .bashrc \ chown:改變'.bashrc'的所有權:不允許操作。刪除'〜/ .puttet',創建'/ usr/local/dshaw/.puppet /'然後將它符號鏈接到'〜/ .puttet /'可以解決問題。 – user1024203