Puppet Manifest Cassandra: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
| + | [[Категория:Puppet]] |
||
| + | [[Категория:Autodeploy]] |
||
=Cassandra Puppet Manifest= |
=Cassandra Puppet Manifest= |
||
| + | |||
Сам манифест достаточно большой , я не писал его с нуля а переработал готовый. Состоит из 2 частей - cassandra и jre. |
Сам манифест достаточно большой , я не писал его с нуля а переработал готовый. Состоит из 2 частей - cassandra и jre. |
||
*[[Медиа:Jre-puppet.tar.gz|Jre-puppet.tar.gz]] |
*[[Медиа:Jre-puppet.tar.gz|Jre-puppet.tar.gz]] |
||
| Строка 27: | Строка 30: | ||
} |
} |
||
</PRE> |
</PRE> |
||
| + | Рассчет токенов: |
||
| + | <PRE> |
||
| + | #!/usr/bin/env python |
||
| + | |||
| + | import sys |
||
| + | |||
| + | nodes = int(sys.argv[1]) |
||
| + | for x in xrange(nodes): |
||
| + | print "Node", x, "initial_token:", 2 ** 127 / nodes * x |
||
| + | </PRE> |
||
| + | |||
==Последовательность исполнения== |
==Последовательность исполнения== |
||
Обратить внимание на секцию before - что бы не возникала ошибка "распаковать файл когда его еще нет" |
Обратить внимание на секцию before - что бы не возникала ошибка "распаковать файл когда его еще нет" |
||
Текущая версия на 16:41, 28 февраля 2013
Cassandra Puppet Manifest
Сам манифест достаточно большой , я не писал его с нуля а переработал готовый. Состоит из 2 частей - cassandra и jre.
Здесь я отмечу только некоторые тонкости:
Конфигурация кластера
Перед тем как использовать манифест нужно указать хосты и их токены. Если хостов не 4 то подредактировать соответвующюю секцию.
Я отказался от идеи вычислять токен "на лету" так же как и список сидов - это создает сложности если хосты устанавливаются не подряд а, например одновременно.
$initial_token = $::hostname ? {
default => "0",
host-sb0 => "0",
host-sb1 => "42535295865117307932921825928971026432",
host-sb2 => "85070591730234615865843651857942052864",
host-sb1 => "127605887595351923798765477786913079296",
}
$seeds = $::hostname ? {
default => "host-sb0, host-sb1, host-sb2 host-sb3",
host-sb0 => "host-sb1, host-sb2, host-sb3",
host-sb1 => "host-sb0, host-sb2, host-sb3",
host-sb2 => "host-sb0, host-sb1, host-sb3",
host-sb3 => "host-sb0, host-sb1, host-sb2",
}
Рассчет токенов:
#!/usr/bin/env python import sys nodes = int(sys.argv[1]) for x in xrange(nodes): print "Node", x, "initial_token:", 2 ** 127 / nodes * x
Последовательность исполнения
Обратить внимание на секцию before - что бы не возникала ошибка "распаковать файл когда его еще нет"
file { "${cassandra::params::cassandra_base}/apache-cassandra-${cassandra::params::version}-bin.tar.gz":
mode => 0644,
owner => cassandra,
group => cassandra,
source => "puppet:///files/cassandra/apache-cassandra-${cassandra::params::version}-bin.tar.gz",
alias => "cassandra-source-tgz",
before => Exec["untar-cassandra"],
require => File["cassandra-base"]
}