通过脚本设置像种子一样的cassandra.yaml设置

时间:2015-01-20 16:42:28

标签: cassandra cassandra-2.0 cassandra-cli

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

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

提前致谢

3 个答案:

答案 0 :(得分:2)

我不知道“最好”的方式但是当我在几个流浪的vms上设置一个cassandra服务器的脚本集群时,我使用puppet来设置种子,等等在cassandra.yaml中。

我写了一些脚本,而不是使用puppetdb来跟踪主机的地址,但这并不是非常成功。麻烦的是,首先出现的节点只在种子列表中出现,因此倾向于在​​其上创建一个集群。然后剩下的就会成为一个独立的集群。所以我不得不取下独奏节点,清除它并用正确的配置重启它

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

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

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

答案 1 :(得分:1)

感谢您提供信息。

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

但是这个人做了这个伎俩:https://github.com/abh1nav/docker-cassandra

由于

答案 2 :(得分:0)

如果您在Docker中运行Cassandra,请以此为例:https://github.com/tobert/cassandra-docker您可以在启动时覆盖群集名称/种子,因此您用于部署容器的任何配置管理工具都可以执行类似的操作。 / p>