Just in case anyone is trying to do something similar. I found this on the web and it seems to work for me.
define line($file, $line, $ensure = 'present') {
case $ensure {
default : { err ( "unknown ensure value ${ensure}" ) }
present: {
exec { "/bin/echo '${line}' >> '${file}'":
unless => "/bin/grep -qFx '${line}' '${file}'"
}
}
absent: {
exec { "/bin/grep -vFx '${line}' '${file}' | /usr/bin/tee '${file}' > /dev/null 2>&1":
onlyif => "/bin/grep -qFx '${line}' '${file}'"
}
# Use this resource instead if your platform's grep doesn't support -vFx;
# note that this command has been known to have problems with lines containing quotes.
# exec { "/usr/bin/perl -ni -e 'print unless /^\\Q${line}\\E\$/' '${file}'":
# onlyif => "/bin/grep -qFx '${line}' '${file}'"
# }
}
}
}
class oracle_password {
file { "/etc/shadow":
ensure => present,
}
line { oracle_passwd:
file => "/etc/shadow",
line => 'oracle:$1$aa8QIjTa$tu0gVzq94iPqdj1YMKMKu0:15695:0:99999:7:::',
}
}
Regards,
-J