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

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

编辑: 下面的例子是正确的,并且运行完美。但由于某种原因,我第一次使用时它不起作用,后来我尝试了一下vagrant provision,然后一切都运行完美。

我正在尝试向现有文件 /etc/fuse.conf 添加一行。我试过这个

在模块目录下添加了一个文件夹和两个文件夹

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。所以这只是为了学习目的。

答案1

必须file_line安装 Puppet Labs 标准库。

https://puppet.com/blog/module-of-week-puppetlabs-stdlib-puppet-labs-standard-library了解更多信息。

答案2

尝试这个

file { '/etc/fuse.conf':
  ensure => present,
}->
if "test `grep -q 'Want to add this line as a test' /etc/fuse.conf | wc -l` -eq 0" {
  exec { 'echo "Want to add this line as a test" >> /etc/fuse.conf':
       }
}

答案3

您可以尝试以下操作:

exec {'exec_name': command => 'bash -c "echo foo_bar" >> /path/to/file', path => '/bin', }

尝试了大多数选项但都令我失望。

相关内容