2017-03-16 122 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