Puppet 压制傀儡国

Puppet 压制傀儡国,puppet,rc,Puppet,Rc,我希望使用puppet来管理我的rc文件(即在工作和家庭之间共享配置文件)。我将我的rc文件保存在subversion respository中。有些机器,我有sudo特权,有些我没有。而且没有一台机器在同一个网络上 我有一个简单的木偶文件: class bashResources ( $home, $svn ) { file { "$home/.bash" : ensure => 'directory', } file { "$home/.bas

我希望使用puppet来管理我的rc文件(即在工作和家庭之间共享配置文件)。我将我的rc文件保存在subversion respository中。有些机器,我有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文件

谢谢,
Derek

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

Puppet尝试
chown
的文件不属于您(否则Puppet不会尝试
chown
它们),但它们应该属于您,其中“您”表示Puppet进程的(e)UID和(e)GID。只需删除Puppet的状态目录,并让它在下次运行时重新生成,就可以解决此问题。或者,您可以执行或安排手动
chown
,例如Puppet正在尝试执行的操作


另一方面,目前还不清楚这种情况最初是如何发生的,我可以想象的一些机制会使这些建议无效。

为什么您没有主目录的写入权限?我有主目录的写入权限。从输出推断,这是一个失败的chown。我想我已经找到了错误的原因。我的主目录位于nfs上。简单chown作为root失败:
dshaw@ubuntuwgu290:~$sudo chown dshaw.bashrc\chown:更改“.bashrc”的所有权:不允许操作
。删除
~/.putte
,创建
/usr/local/dshaw/.puppet/
,然后将其符号链接到
~/.putte/
可以解决此问题。