【问题标题】:Best practice for "Watch key changes" in etcd v3etcd v3 中“Watch key changes”的最佳实践
【发布时间】:2021-08-24 10:43:46
【问题描述】:

我们想使用带有“watch”功能的etcd来改变我们的“/etc/hosts”文件。 一个节点应该改变这个值,然后手表应该把改变写入“/etc/hosts”。

节点1输入:

etcdctl put master-server "192.168.10.1 master-server.int.server.io"

Node2 观察:

etcdctl watch master-server | head -3 | tail -1 | tee  >> hosts.file

Node2 输出:

192.168.10.1 master-server.int.server.io

这很好,但现在我想要一个多行的输出,如下所示: 节点 2 输出:

192.168.10.1 master-server.int.server.io
192.168.10.2 slave1-server.int.server.io
192.168.10.3 slave2-server.int.server.io

我的想法是:

etcdctl put master-server "192.168.10.1 master-server.int.server.io \n192.168.10.2 slave1-server.int.server.io \n192.168.10.3 slave2-server.int.server.io"

但它不起作用。

输出是:

192.168.10.1 master-server.int.server.io \n192.168.10.2 slave1-server.int.server.io \n192.168.10.3 slave2-server.int.server.io

有人知道解决我的问题的最佳方法吗? 以及如何将多行转换为一个值?

感谢您的帮助。

【问题讨论】:

    标签: etcd etcd3 etcdctl


    【解决方案1】:

    以下是否符合您的要求?

    export ETCDCTL_API=3
    echo -e "hello\nworld" | etcdctl put mykey
    

    然后再读一遍:

    etcdctl --write-out=json get mykey | jq .kvs[0].value | sed 's/"//g'  | base64 -d
    

    【讨论】:

      猜你喜欢
      • 2022-01-27
      • 2021-02-21
      • 2020-12-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      相关资源
      最近更新 更多