我正在尝试在现有文件/etc/fuse.conf中添加一行。我试过这个
在modules目录下添加了两个文件夹
sudo mkdir /etc/puppet/modules/test
sudo mkdir /etc/puppet/modules/test/manifests
然后创建了一个test.pp文件并添加了以下行
sudo vim /etc/puppet/modules/test/manifests/test.pp
file { '/etc/fuse.conf':
ensure => present,
}->
file_line { 'Append a line to /etc/fuse.conf':
path => '/etc/fuse.conf',
line => 'Want to add this line as a test',
}
之后我运行了这个命令
puppet apply /etc/puppet/modules/test/manifests/test.pp
然后我打开这个文件/etc/fuse.conf
,文件没有变化。该行未添加到文件中。我不明白我在这里缺少什么。我怎样才能做到这一点?
您应该使用模板(ERB)来处理文件配置。它更容易,更清洁。
检查木偶文档:https://docs.puppetlabs.com/puppet/latest/reference/lang_template.html
还有其他选择。例如Augeas是一个用于文件配置的API,并且与Puppet很好地集成。 http://augeas.net/index.html
[]的
有几种方法可以解决这个问题。如果它是ini文件你可以使用ini_setting
。如果它得到了augeas的支持,你可以使用它。否则,请尝试将after参数指定给file_line
有趣。我在没有问题的情况下运行了相同的测试,只要你在你的环境中安装了stdlib
就可以了。
https://forge.puppet.com/puppetlabs/stdlib
运行您概述的相同步骤的结果对我来说是成功的:
[root@foreman-staging tmp]# puppet apply /etc/puppet/modules/test/manifests/test.pp
Notice: Compiled catalog for foreman-staging.kapsch.local in environment production in 0.18 seconds
Notice: /Stage[main]/Main/File[/etc/fuse.conf]/ensure: created
Notice: /Stage[main]/Main/File_line[Append a line to /etc/fuse.conf]/ensure: created
Notice: Finished catalog run in 0.24 seconds
你的傀儡输出了什么?