使用puppet的augeas功能我想修改配置文件:
/etc/ssh/sshd_config
没有木偶,我已经尝试使用Augeas的“augtool”,发现了几行似乎有效:
augtool> set /files/etc/ssh/sshd_config/Match[1]/Condition/User "bill","ben"
augtool> set /files/etc/ssh/sshd_config/Match/Settings/PasswordAuthentication "no"
augtool> save
虽然它似乎运作正常,但我并不真正理解[1]在这里的用途。
我已经尝试过将这些行放入Puppet:
augeas { "sshd_config":
context => "/files/etc/ssh/sshd_config",
changes => [
'set Match[1]/Condition/User "bill","ben"',
'set Settings/PasswordAuthentication "no"',
],
}
它给出了错误: 错误:/ Stage [main] / Samipermissions / Augeas [sshd_config]:无法评估:保存失败,请参阅debug
在调试模式下运行Puppet告诉我同样的事情。
有人知道这是如何工作的吗?
谢谢你m0dlx。 你的回答让我超越了我所得到的错误,但是我认为我仍然对匹配数组感到有些失落。使用“augtool”我可以执行以下操作:
set /files/etc/ssh/sshd_config/Match[1]/Condition/User "neil","nigel"
set /files/etc/ssh/sshd_config/Match[1]/Settings/PasswordAuthentication "no"
set /files/etc/ssh/sshd_config/Match[2]/Condition/User "yvonne","yvette"
set /files/etc/ssh/sshd_config/Match[2]/Settings/PasswordAuthentication "yes"
配置文件中的显示为:
Match User neil,nigel
PasswordAuthentication no
Match User yvonne,yvette
PasswordAuthentication yes
哪个是完美的。我把它翻译成Puppet:
augeas { "sshd_config":
context => "/files/etc/ssh/sshd_config",
changes => [
'set Match[1]/Condition/User "neil","nigel"',
'set Match[1]/Settings/PasswordAuthentication "no"',
'set Match[2]/Condition/User "yvonne","yvette"',
'set Match[2]/Settings/PasswordAuthentication "yes"',
],
}
但配置文件中的结果完全不同:
Match User neil
PasswordAuthentication no
Match User yvonne
PasswordAuthentication yes
答案 0 :(得分:2)
虽然它似乎运作正常,但我并不清楚[1]在这里的用途是什么。
[1]
就像访问一个数组元素一样,它表示你想要访问第一个Match
条目,如果有多个。
'设置设置/密码身份验证"否"',
您错过了Augtool测试中的前导Match/
,这可能导致Puppet的保存失败。
如果您仍有问题,请在问题中包含Puppet的完整调试输出。
答案 1 :(得分:0)
m0dlx的答案和后来的评论使我得到了以下完美的结论:
augeas { "sshd_config":
context => "/files/etc/ssh/sshd_config",
changes => [
'set Match[1]/Condition/User "neil,nigel"',
'set Match[1]/Settings/PasswordAuthentication "no"',
'set Match[2]/Condition/User "yvonne,yvette"',
'set Match[2]/Settings/PasswordAuthentication "yes"',
],
}
谢谢m0dlx。