将Augeas翻译成Puppet说Augeas

时间:2016-07-25 14:13:30

标签: puppet augeas

使用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

2 个答案:

答案 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。