如果它存在则覆盖,否则覆盖

时间:2013-07-15 10:00:25

标签: centos vagrant puppet

我正在尝试使用具有以下功能的puppet重写文件。

如果文件存在,我仍然希望从源重写文件。这会通过以下方法实现吗?

define setup_sysctl_conf( $dependence=File[$dummy_dependence_file] )
  {
        file { $name:
         path    => '/etc/sysctl.conf',
                 ensure  => present,
         mode    => 0777,
         source  => '/vagrant/files/sysctl.conf',
         require => $dependence, 
     }

  }

1 个答案:

答案 0 :(得分:1)

文件:/etc/sysctl.conf已经存在于您的主机上(由initscripts包创建)。

我建议使用augeas使用puppet修改现有文件,而不是替换它们。

示例(将net.ipv4.ip_forward更改为1):

class sysctl_augeas_example {
  augeas{"Set net.ipv4.ip_forward to 1":
    context   => "/files",
    changes   => [
      "set etc/sysctl.conf/net.ipv4.ip_forward 1",
    ]
  }
}
include sysctl_augeas_example

将此示例另存为test.pp并使用puppet apply test.pp

运行它