MWright
MWright

Reputation: 1711

Overwrite if if it exists or create if it does not

I am trying to rewrite a file using puppet with the following function.

If the file exists I still want the file to be rewrite from the source. Will this be achieved with the following method?

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, 
     }

  }

Upvotes: 0

Views: 737

Answers (1)

jgb
jgb

Reputation: 1214

The file: /etc/sysctl.conf will already be present on your host (created by the initscripts package).

I would recommend to modify existing files with puppet using augeas instead of replacing them.

Example (changes net.ipv4.ip_forward to 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

Save this example as test.pp and run it with puppet apply test.pp

Upvotes: 1

Related Questions