Как присвоить значение initial_token, используя кукол в Кассандре

Я хочу назначить initial_token значение в cassandra.yaml файл с использованием автоматизации кукол. Может кто-нибудь, пожалуйста, скажите мне, как это сделать.

Я не могу использовать виртуальные узлы, потому что vnodes не поддерживаются для узлов hadoop и solr.

Пример: если бы у меня был массив:

['-9223372036854775808', '-3074457345618258603', '3074457345618258602']

Мне нужно назначить каждое значение для каждого узла.

1 ответ

Решение

Вы можете сохранить этот массив в переменной в манифесте.

РЕДАКТИРОВАТЬ: если используется Cassandra =<1,2, большинство модулей Puppet Cassandra должны иметь параметр для установки этой опции. Таким образом, вы можете передать туда значение из массива. Например: https://forge.puppetlabs.com/gini/cassandra

Если вы не используете модуль для настройки Cassandra уже с этим параметром, вы можете создать шаблон Cassandra.yaml и просто использовать ERB для ввода значения из этого массива в шаблон.

http://docs.puppetlabs.com/guides/templating.html

РЕДАКТИРОВАТЬ:

Теперь я вернулся к ПК, я могу думать немного больше. Мгновенное решение, которое я могу придумать, состоит в том, чтобы определить токены в хэше либо IP-адреса узла, либо узла hostname => token - '127.0.0.1' => '-9223372036854775808', Это может быть создано в манифесте, или вы можете сделать это через Hiera. Если в Hiera вам нужно будет извлечь его в переменную в любом случае в манифесте.

Тогда в шаблоне вы сможете ссылаться на него <%= variableName[@::ipaddress_eth0] %> например.

Другие вопросы по тегам