2015-12-04 72 views
0

我试图用一个Augeas资源设置ServerNamehttpd.conf是这样的...设置服务器名与Augeas

# configure Apache HTTP server 
augeas { 'ServerName': 
    context => '/files/etc/httpd/conf/httpd.conf', 
    changes => "set ServerName ${controller_name}", 
} -> 

...但我得到这个错误:

[Debug: Augeas[ServerName](provider=augeas): Opening augeas with root /, lens path , flags 32^[[0m 
[Debug: Augeas[ServerName](provider=augeas): Augeas version 1.2.0 is installed^[[0m 
[Debug: Augeas[ServerName](provider=augeas): Will attempt to save and only run if files changed^[[0m 
[Debug: Augeas[ServerName](provider=augeas): sending command 'set' with params ["/files/etc/httpd/conf/httpd.conf/ServerName", "svl-ost-centos.cisco.com"]^[[0m 
[Debug: Augeas[ServerName](provider=augeas): Put failed on one or more files, output from /augeas//error:^[[0m 
[Debug: Augeas[ServerName](provider=augeas): /augeas/files/etc/httpd/conf/httpd.conf/error = put_failed^[[0m 
[Debug: Augeas[ServerName](provider=augeas): /augeas/files/etc/httpd/conf/httpd.conf/error/path = /files/etc/httpd/conf/httpd.conf^[[0m 
[Debug: Augeas[ServerName](provider=augeas): /augeas/files/etc/httpd/conf/httpd.conf/error/lens = /opt/puppet/share/augeas/lenses/dist/httpd.aug:88.10-.44:^[[0m 
[Debug: Augeas[ServerName](provider=augeas): /augeas/files/etc/httpd/conf/httpd.conf/error/message = Malformed child node 'ServerName'^[[0m 
[Debug: Augeas[ServerName](provider=augeas): Closed the augeas connection^[[0m 
[Error: /Stage[main]/Wrapcontroller/Augeas[ServerName]: Could not evaluate: Saving failed, see debug^[[0m 

我在这里做错了什么?

回答

1

Httpd.lns镜头中的指令不是节点标签。相反,树应该是这样的:

/directive = "ServerName" 
/directive/arg = "${controller_name}" 

的方式来实现,与木偶是:

augeas { 'ServerName': 
    context => '/files/etc/httpd/conf/httpd.conf', 
    changes => [ 
     'set directive[.="ServerName"] "ServerName"', 
     "set directive[.="ServerName"]/arg '${controller_name}'", 
    ], 
} 
+0

这是没有工作对我也 –

+0

这有什么代码的调试消息? –