Squelch puppet state chown

时间:2017-03-16 21:18:14

标签: puppet rc

我希望使用puppet来管理我的rc文件(即在工作和家庭之间共享配置文件)。我将我的rc文件保存在subversion存储库中。有些机器,我有sudo特权,有些我没有。并且没有一台机器在同一个网络上。

我有一个简单的木偶文件:

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

当我运行puppet时,我遇到一个令人烦恼的错误,即无法执行chown:

dshaw@ubuntuwgu290:~/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

我试图通过在我的配置文件中添加reports=none来压制错误,但它没有效果。

如何压制这些错误?或者,是否有更轻松的工具来管理rc文件?

谢谢, 德里克

1 个答案:

答案 0 :(得分:0)

该错误与Puppet尝试在/home/dshaw/.puppet中管理自己的元数据有关,而不是在Puppet管理目录中注册的任何文件。即使您以普通用户身份运行Puppet,这通常也不是问题。事实上,支持这类事情是每个用户Puppet元数据存在的原因之一。

Puppet尝试chown的文件不属于您(否则Puppet不会尝试chown他们),但应该属于您,其中“你”是指木偶程序的(e)UID和(e)GID。您可以通过删除Puppet的状态目录并让它在下次运行时重建它来解决问题。或者,您可以执行或安排手册chown,例如Puppet正在尝试执行。

另一方面,目前还不清楚这种情况是如何产生的,我能想象的一些机制会使这些建议失效。