Eu não usaria ensure => absent
aqui, pois isso permite apenas uma correspondência exata. Uma solução simples, mas eficaz, seria usar um comentário (ou vazio) line
junto com um match
regex para procurar substituir:
file_line { 'sudoers-myuser':
path => '/etc/sudoers',
line => '# myuser ALL=NOPASSWD:/bin/su -',
match => 'myuser.*ALL=NOPASSWD:/bin/su.*-',
}
Isso introduziria line
mesmo se o match
não estivesse presente no arquivo, mas como o conteúdo não é um op, ele não deve apresentar problemas sérios. Tenha cuidado para escapar caracteres especiais regex na linha match
.