Resposta específica: Imediatamente falando, você está chamando sysctl :: value, mas o valor não é declarado em sua classe sysctl. Veja este exemplo que usa uma declaração sysctl :: conf. Sem o define value
, não há subclasse sysctl :: value para você chamar.
Resposta geral e orientação: A construção Augeas (veja também A documentação de referência do tipo ), que faz parte das versões atuais do Puppet, permite manter linhas em um arquivo de configuração e respeita mesmo o contexto, para que ele possa gerenciar arquivos como uma configuração do git. O exemplo abaixo serve tanto para demonstrar a funcionalidade quanto para indicar uma grande coleção de referência de configurações do Puppet - o armazenamento de configuração ao vivo para servidores da Wikipedia.
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://gerrit.wikimedia.org/r/p/operations/puppet
[branch "production"]
remote = origin
merge = refs/heads/production
Um exemplo simples da documentação de configuração acima seria o seguinte:
augeas { "sshd_config":
context => "/files/etc/ssh/sshd_config",
changes => [
"set PermitRootLogin no",
],
}
Então, se você quiser gerenciar seu /etc/sysctl.conf, digite o seguinte:
augeas { "sysctl":
context => "/files/etc/sysctl.conf",
changes => [
"set kernel.sysrq = 0",
#and whatever other lines are interesting to you
],
}
O exemplo do Augeas também tem um constructo para uma classe sysctl baseada no Augeus que é semelhante ao que você postou em sua pergunta, para que também possa lançar alguma luz.