首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改augeas中的yml文件

修改augeas中的yml文件
EN

Stack Overflow用户
提问于 2016-01-22 16:23:33
回答 2查看 2.1K关注 0票数 2

我正试图通过/etc/elasticsearch/elasticsearch.yml资源在傀儡清单中修改/设置augeas文件,但它不起作用。有人能解释一下我应该指定什么lens文件吗?我是否需要为这个安装一些额外的东西,还是在默认安装中包括了所需的镜头?

我试图像这样更改键值对:

代码语言:javascript
复制
 key1.key2:  value
 eg:


cluster.name: cms-es

我的代码:

代码语言:javascript
复制
  augeas { "elastic_config":
  context => "/files/etc/elasticsearch/elasticsearch.yml",
  changes => [
  "set 'network.host:' ipaddress_eth0",
  "set 'cluster.name:' cms-es",
  "set 'node.name:' ec2_hostname",
  "set 'bootstrap.mlockall:' true",
 ],
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-05 21:15:44

这不是最好的解决方案,但如果您只依赖于冒号分隔的配置文件,我就有一个镜头。

/usr/share/augeas/lens/colonvars.aug中复制和粘贴以下内容(或者使用奥吉斯模块来实现这一点)。

代码语言:javascript
复制
(*
Module: Colonvars
    Parses a simple colon (:) delimited files

Author: Alex Simenduev <shamil.si@gmail.com>

About: Usage Example
(start code)
    augtool> set /augeas/load/Colonvars/lens "Colonvars.lns"
    augtool> set /augeas/load/Colonvars/incl "/etc/elasticsearch/elasticsearch.yml"
    augtool> load

    augtool> get /files/etc/elasticsearch/elasticsearch.yml/cluster.name
    /files/etc/elasticsearch/elasticsearch.yml/cluster.name = elk

    augtool> set /files/etc/elasticsearch/elasticsearch.yml/node.name elk-node-0
    augtool> save
    Saved 1 file(s)

    $ grep node.name /etc/elasticsearch/elasticsearch.yml
    node.name: elk-node-0
(end code)

About: License
    This file is licensed under the LGPL v2+, like the rest of Augeas.
*)

module Colonvars =

   let colon = del /[ \t]*:[ \t]*/ ": "
   let entry = Build.key_value_line Rx.word colon (store Rx.space_in)
   let lns   = (Util.empty | Util.comment | entry)*

下面是如何使用它(基于您的示例):

代码语言:javascript
复制
augeas { "elastic_config":
    incl => "/etc/elasticsearch/elasticsearch.yml",
    lens => "Colonvars.lns",
    changes => [
        "set network.host ipaddress_eth0",
        "set cluster.name cms-es",
        "set node.name ec2_hostname",
        "set bootstrap.mlockall true",
    ]
}
票数 1
EN

Stack Overflow用户

发布于 2016-01-22 17:08:53

Augeas当前无法编辑YAML文件,因为无法使用Augeas镜头描述YAML语法。需要对Augeas的核心进行修改,以支持这一点(以支持一致的in,这对于这种格式来说是强制性的)。

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

https://stackoverflow.com/questions/34951337

复制
相关文章

相似问题

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