Puppet:如何在现有文件中添加一行

问题描述 投票:0回答:3

我正在尝试在现有文件/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,文件没有变化。该行未添加到文件中。我不明白我在这里缺少什么。我怎样才能做到这一点?

puppet
3个回答
0
投票

您应该使用模板(ERB)来处理文件配置。它更容易,更清洁。

检查木偶文档:https://docs.puppetlabs.com/puppet/latest/reference/lang_template.html

还有其他选择。例如Augeas是一个用于文件配置的API,并且与Puppet很好地集成。 http://augeas.net/index.html

[]的


0
投票

有几种方法可以解决这个问题。如果它是ini文件你可以使用ini_setting。如果它得到了augeas的支持,你可以使用它。否则,请尝试将after参数指定给file_line


0
投票

有趣。我在没有问题的情况下运行了相同的测试,只要你在你的环境中安装了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

你的傀儡输出了什么?

© www.soinside.com 2019 - 2024. All rights reserved.