如何解决etcd v3 中“监视密钥更改”的最佳实践
我们想使用带有“watch”功能的 etcd 来更改我们的“/etc/hosts”文件。 一个节点应该改变这个值,然后 watch 应该在“/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
节点 2 输出:
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
有人知道处理我的问题的最佳方法吗? 以及如何将多行转换为一个值?
感谢您的帮助。
解决方法
以下是否符合您的要求?
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。