首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Augeas修改Squid配置

使用Augeas修改Squid配置
EN

Server Fault用户
提问于 2012-04-23 11:44:02
回答 1查看 1.7K关注 0票数 1

我正在运行squid-deb-proxy,我想使用Puppet/Augeas修改配置。

当我尝试这个:

代码语言:javascript
复制
augeas {'squid-deb-proxy.conf':
    lens    => 'Squid.lns',
    incl    => '/etc/squid-deb-proxy/squid-deb-proxy.conf',
    changes => ["set http_port 3129"],
    require => Package['squid-deb-proxy']
}

我从木偶那里得到以下错误:

代码语言:javascript
复制
err: /Stage[main]/Portal::Packages::Squid-deb-proxy/Augeas[squid-deb-proxy.conf]: Could not evaluate: Save failed with return code false

我在augtool中尝试了以下几种方法:

代码语言:javascript
复制
augtool> rm /augeas/load/*
rm : /augeas/load/* 867
augtool> set /augeas/load/Squid/lens Squid.lns
augtool> set /augeas/load/Squid/incl /etc/squid-deb-proxy/squid-deb-proxy.conf
augtool> load
augtool> print
/augeas
/augeas/root = "/"
/augeas/context = "/files"
/augeas/variables
/augeas/version = "0.10.0"
/augeas/version/save
/augeas/version/save/mode[1] = "backup"
/augeas/version/save/mode[2] = "newfile"
/augeas/version/save/mode[3] = "noop"
/augeas/version/save/mode[4] = "overwrite"
/augeas/version/defvar
/augeas/version/defvar/expr
/augeas/version/pathx
/augeas/version/pathx/functions
/augeas/version/pathx/functions/count
/augeas/version/pathx/functions/glob
/augeas/version/pathx/functions/label
/augeas/version/pathx/functions/last
/augeas/version/pathx/functions/position
/augeas/version/pathx/functions/regexp
/augeas/save = "overwrite"
/augeas/span = "disable"
/augeas/load
/augeas/load/Squid
/augeas/load/Squid/lens = "Squid.lns"
/augeas/load/Squid/incl = "/etc/squid-deb-proxy/squid-deb-proxy.conf"
/augeas/files
/augeas/files/etc
/augeas/files/etc/squid-deb-proxy
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/path = "/files/etc/squid-deb-proxy/squid-deb-proxy.conf"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/mtime = "1335175492"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/lens = "Squid.lns"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/lens/info = "/usr/share/augeas/lenses/dist/squid.aug:433.18-.95:"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error = "parse_failed"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error/pos = "1449"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error/line = "42"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error/char = "0"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error/lens = "/usr/share/augeas/lenses/dist/squid.aug:433.18-.95:"
/augeas/files/etc/squid-deb-proxy/squid-deb-proxy.conf/error/message = "Iterated lens matched less than it should"
/files

这似乎表明镜头不能解析配置文件。squid-deb-proxy.conf的第42行是:

代码语言:javascript
复制
cache_access_log /var/log/squid-deb-proxy/access.log

cache_access_log似乎没有出现在/usr/share/augeas/lenses/dist/squid.aug中。

所以..。在我看来,随Augeas 0.10.0提供的Squid镜头并不包括所有Squid配置选项。这难道不使镜头的配置非常脆弱吗?我还没有看过镜头,但是他们为什么不定义文件的‘结构’(例如“名称空格值-包括-空格”,或者“名称选项卡-仅值-列表-空格分隔”等等)?这似乎有点奇怪,有点维护头痛,必须让镜头知道所有的配置选项。

我诊断正确了吗?如果是这样的话,我能做些什么(最好不用手动修改镜头等等)。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2012-04-23 12:15:15

我可以确认当前的镜头不支持cache_access_log参数,最好的方法就是打开一个论奥盖斯的悲剧票。

有些配置文件很容易映射,您只需指定一个模式(如"key = value")。另一些则比较棘手,其中一些条目有特定的语法,而另一些条目则有不同的语法。例如,在squid镜头的情况下,http_accessacl条目的语法与文件的其他部分不同。因此,有必要列出文件中的所有已知键,以便将它们映射到正确的解析器。

对于这样的镜头,当镜头中缺少一个键时,最好的方法是报告它(或者更好地,发送一个补丁到列表中,在这种情况下它是相当微不足道的)。

期待您的机票/补丁!

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/382207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档