通过脚本设置 cassandra.yaml 设置如种子

Set cassandra.yaml settings like seeds through a script

设置 yaml 设置的最佳方法是什么?我正在使用 docker 容器并希望自动执行设置 cassandra.yaml 设置的过程,例如种子、listen_address 和 rpc_address。

我在其他 yaml 工具中看到过类似的东西:<%= ENV['envsomething'] %>

提前致谢

我不知道 "best" 方法,但是当我在几个 vagrant 虚拟机上设置一个脚本化的 cassandra 服务器集群时,我使用 puppet 来设置种子等等 cassandra.yaml .

我确实写了一些脚本而不是使用 puppetdb 来跟踪主机的地址,但这并不是非常成功。问题是首先出现的节点只有自己在种子列表中,因此往往会自己形成一个集群。然后其余的将作为一个单独的集群出现。所以我不得不取下单独的节点,清除它并用正确的配置重新启动它

如果我现在这样做,我会将地址设置为静态 ip,然后使用它们填写所有节点上 cassandra.yaml 文件的模板。然后希望节点能对其他集群成员提出正确的想法。

我对 Docker 没有任何经验,但他们确实说使用 puppet+Docker 的方法是在启动之前在 Docker 容器上使用 puppet

请注意,您需要大量内存才能完成这项工作。我有一台 16GB 的机器,这有点可疑。

如果您是 Docker 中的 运行 Cassandra,请使用此示例:https://github.com/tobert/cassandra-docker 您可以在启动时覆盖集群 name/seeds,因此无论您使用什么配置管理工具部署容器可以做类似的事情。

感谢您提供信息。

我正在考虑使用 https://github.com/go-yaml/yaml

但这家伙成功了:https://github.com/abh1nav/docker-cassandra

谢谢