我对 Augeas 还不太熟悉,但有人告诉我这使用 puppet 修改配置的工具。
我正在尝试创建一个简单的类,如果 /etc/hosts 不存在则添加一行。
augeas { "test_config":
context => "/files/etc/hosts/01/",
changes => [
"set ipaddr 192.168.100.3",
"set canonical test.localdomain",
"set alias[1] test",
],
这将创建我想要的线条。
hosts 文件如下所示
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.3 test.localhost test
192.168.0.4 badger.oam.eeint.co.uk badger
由于我不想有重复,所以我在 augtool 中创建了一个匹配行来获得匹配。
augtool> 匹配 /files/etc/hosts/3/alias /files/etc/hosts/3/alias = 测试
我当前的配置似乎无法预测
augeas { "test_config":
context => "/files/etc/hosts/*/",
changes => [
"set ipaddr 192.168.100.3",
"set canonical test.localdomain",
"set alias[1] test",
],
onlyif => "match alias 'test'",
}
有人能帮我在这方面指明正确的方向吗?
答案1
答案2
为什么不利用exec
资源?
exec{'serverfault demo':
command => 'echo 192.168.100.3 test.localdomain >> /etc/hosts',
unless => 'grep test.localdomain /etc/hosts',
path => ['/bin','/usr/bin'],
}
这将运行该命令,并且仅当/etc/hosts 中不存在echo
该行时才添加该行。192.168.100.3 test.localdomain