Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9123974
README.md
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
16 KB
Subscribers
None
README.md
View Options
#
cassandra
[](https://forge.puppetlabs.com/locp/cassandra)
[](https://github.com/locp/cassandra)
[](https://travis-ci.org/locp/cassandra)
[](https://gitter.im/locp/cassandra?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
####
Table
of
Contents
1
.
[
Overview
](#
overview
)
2
.
[
Setup
-
The
basics
of
getting
started
with
cassandra
](#
setup
)
*
[
What
cassandra
affects
](#
what
-
cassandra
-
affects
)
*
[
Beginning
with
cassandra
](#
beginning
-
with
-
cassandra
)
*
[
Upgrading
](#
upgrading
)
3
.
[
Usage
-
Configuration
options
and
additional
functionality
](#
usage
)
4
.
[
Reference
-
An
under
-
the
-
hood
peek
at
what
the
module
is
doing
and
how
](#
reference
)
*
[
cassandra
](#
class
-
cassandra
)
*
[
cassandra
::
datastax_agent
](#
class
-
cassandradatastax_agent
)
*
[
cassandra
::
java
](#
class
-
cassandrajava
)
*
[
cassandra
::
optutils
](#
class
-
cassandraoptutils
)
5
.
[
Limitations
-
OS
compatibility
,
etc
.](#
limitations
)
6
.
[
Contributers
](#
contributers
)
##
Overview
A
Puppet
module
to
install
and
manage
Cassandra
and
DataStax
Agent
.
##
Setup
###
What
cassandra
affects
*
Installs
the
Cassandra
package
(
default
**
dsc21
**).
*
Configures
settings
in
*${
config_path
}/
cassandra
.
yaml
*.
*
Optionally
insures
that
the
Cassandra
service
is
enabled
and
running
.
*
Optionally
installs
the
Cassandra
support
tools
(
e
.
g
.
cassandra21
-
tools
).
*
Optionally
configures
a
Yum
repository
to
install
the
Cassandra
packages
from
(
on
Red
Hat
).
*
Optionally
configures
an
Apt
repository
to
install
the
Cassandra
packages
from
(
on
Ubuntu
).
*
Optionally
installs
a
JRE
/
JDK
package
(
e
.
g
.
java
-
1.7
.
0
-
openjdk
).
*
Optionally
installs
the
DataStax
agent
.
###
Beginning
with
cassandra
This
most
basic
example
would
attempt
to
install
the
default
Cassandra
package
(
assuming
there
is
an
available
repository
).
See
the
*
Usage
*(#
usage
)
section
for
more
realistic
scenarios
.
```
puppet
node
'
example
'
{
include
'
::
cassandra
'
}
```
To
install
the
DataStax
agent
,
include
the
specific
class
.
```
puppet
node
'
example
'
{
include
'
::
cassandra
'
include
'
::
cassandra
::
datastax_agent
'
}
```
To
install
with
a
reasonably
sensible
Java
environment
include
the
java
subclass
.
```
puppet
node
'
example
'
{
include
'
::
cassandra
'
include
'
::
cassandra
::
java
'
}
```
To
install
Cassandra
with
the
optional
utilities
.
```
puppet
node
'
example
'
{
include
'
::
cassandra
'
include
'
::
cassandra
::
optutils
'
}
```
To
install
the
main
cassandra
package
(
which
is
mandatory
)
and
all
the
optional
packages
,
do
the
following
:
```
puppet
node
'
example
'
{
include
'
::
cassandra
'
include
'
::
cassandra
::
datastax_agent
'
include
'
::
cassandra
::
java
'
include
'
::
cassandra
::
optutils
'
}
```
By
saying
the
cassandra
class
/
package
is
mandatory
,
what
is
meant
is
that
all
the
sub
classes
have
a
dependency
on
the
main
class
.
So
for
example
one
could
not
specify
the
cassandra
::
java
class
for
a
node
with
the
cassandra
class
also
being
included
.
###
Upgrading
The
following
changes
to
the
API
have
taken
place
.
####
Changes
in
0.4
.
0
There
is
now
a
cassandra
::
datastax_agent
class
,
therefore
:
*
cassandra
::
datastax_agent_package_ensure
has
now
been
replaced
with
cassandra
::
datastax_agent
::
package_ensure
.
*
cassandra
::
datastax_agent_service_enable
has
now
been
replaced
with
cassandra
::
datastax_agent
::
service_enable
.
*
cassandra
::
datastax_agent_service_ensure
has
now
been
replaced
with
cassandra
::
datastax_agent
::
service_ensure
.
*
cassandra
::
datastax_agent_package_name
has
now
been
replaced
with
cassandra
::
datastax_agent
::
package_name
.
*
cassandra
::
datastax_agent_service_name
has
now
been
replaced
with
cassandra
::
datastax_agent
::
service_name
.
Likewise
now
there
is
a
new
class
for
handling
the
installation
of
Java
:
*
cassandra
::
java_package_ensure
has
now
been
replaced
with
cassandra
::
java
::
ensure
.
*
cassandra
::
java_package_name
has
now
been
replaced
with
cassandra
::
java
::
package_name
.
Also
there
is
now
a
class
for
installing
the
optional
utilities
:
*
cassandra
::
cassandra_opt_package_ensure
has
now
been
replaced
with
cassandra
::
optutils
:
ensure
.
*
cassandra
::
cassandra_opt_package_name
has
now
been
replaced
with
cassandra
::
optutils
:
package_name
.
####
Changes
in
0.3
.
0
*
cassandra_opt_package_ensure
changed
from
'
present
'
to
undef
.
*
The
manage_service
option
has
been
replaced
with
service_enable
and
service_ensure
.
##
Usage
###
Create
a
Small
Cluster
To
install
Cassandra
in
a
two
node
cluster
called
'
Foobar
Cluster
'
where
node1
(
192.168
.
42.1
)
is
the
seed
and
node2
(
192.168
.
42.2
)
is
also
to
be
a
member
,
do
something
similar
to
this
:
```
puppet
include
cassandra
::
java
include
cassandra
::
optutils
node
'
node1
'
{
class
{
'
cassandra
'
:
cluster_name
=>
'
Foobar
Cluster
'
,
listen_address
=>
"${::ipaddress}"
,
seeds
=>
"${::ipaddress}"
,
manage_dsc_repo
=>
true
}
}
node
'
node2
'
{
class
{
'
cassandra
'
:
cluster_name
=>
'
Foobar
Cluster
'
,
listen_address
=>
"${::ipaddress}"
,
seeds
=>
'
192.168
.
42.1
'
,
manage_dsc_repo
=>
true
}
}
```
This
would
also
ensure
that
the
JDK
is
installed
and
the
optional
Cassandra
tools
.
##
Reference
###
Public
Classes
*
**
cassandra
**
*
**
cassandra
::
datastax_agent
**
*
**
cassandra
::
java
**
*
**
cassandra
::
optutils
**
###
Class
:
cassandra
A
class
for
installing
the
Cassandra
package
and
manipulate
settings
in
the
configuration
file
.
####
Parameters
#####
`
authenticator
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
AllowAllAuthenticator
**).
#####
`
authorizer
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
:
**
AllowAllAuthorizer
**).
#####
`
auto_snapshot
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
true
**).
#####
`
cassandra_package_ensure
`
The
status
of
the
package
specified
in
**
cassandra_package_name
**.
Can
be
*
present
*,
*
latest
*
or
a
specific
version
number
(
default
**
present
**).
#####
`
cassandra_package_name
`
The
name
of
the
Cassandra
package
.
Must
be
available
from
a
repository
(
default
**
dsc21
**).
#####
`
cassandra_yaml_tmpl
`
The
path
to
the
Puppet
template
for
the
Cassandra
configuration
file
.
This
allows
the
user
to
supply
their
own
customized
template
.
A
Cassandra
1
.
X
compatible
template
called
cassandra1
.
yaml
.
erb
has
been
provided
by
@
Spredzy
(
default
**
cassandra
/
cassandra
.
yaml
.
erb
**).
#####
`
client_encryption_enabled
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
false
**).
#####
`
client_encryption_keystore
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
conf
/.
keystore
**).
#####
`
client_encryption_keystore_password
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
cassandra
**).
#####
`
cluster_name
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
Test
Cluster
**).
#####
`
commitlog_directory
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**/
var
/
lib
/
cassandra
/
commitlog
**).
#####
`
concurrent_counter_writes
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
32
**).
#####
`
concurrent_reads
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
32
**).
#####
`
concurrent_writes
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
32
**).
#####
`
config_path
`
The
path
to
the
cassandra
configuration
file
.
If
this
is
undef
,
it
will
be
changed
to
**/
etc
/
cassandra
/
default
.
conf
**
on
the
Red
Hat
family
of
operating
systems
or
**/
etc
/
cassandra
**
on
Ubuntu
.
Otherwise
the
user
can
specify
the
path
name
(
default
**
undef
**).
#####
`
data_file_directories
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**[
'
/
var
/
lib
/
cassandra
/
data
'
]**).
#####
`
disk_failure_policy
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
:
**
stop
**).
#####
`
endpoint_snitch
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
:
**
SimpleSnitch
**).
#####
`
hinted_handoff_enabled
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
defaults
to
**
'
true
'
**).
#####
`
incremental_backups
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
false
**).
#####
`
internode_compression
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
all
**).
#####
`
listen_address
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
localhost
**).
#####
`
manage_dsc_repo
`
If
set
to
true
then
a
repository
will
be
setup
so
that
packages
can
be
downloaded
from
the
DataStax
community
edition
(
default
**
false
**).
#####
`
native_transport_port
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
9042
**).
#####
`
num_tokens
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
256
**).
#####
`
partitioner
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
org
.
apache
.
cassandra
.
dht
.
Murmur3Partitioner
**)
#####
`
rpc_address
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
localhost
**).
#####
`
rpc_port
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
9160
**).
#####
`
rpc_server_type
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
sync
**).
#####
`
saved_caches_directory
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**/
var
/
lib
/
cassandra
/
saved_caches
**).
#####
`
seeds
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
127.0
.
0.1
**).
#####
`
server_encryption_internode
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
none
**).
#####
`
server_encryption_keystore
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
conf
/.
keystore
**).
#####
`
server_encryption_keystore_password
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
cassandra
**).
#####
`
server_encryption_truststore
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
conf
/.
truststore
**).
#####
`
server_encryption_truststore_password
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
cassandra
**).
#####
`
service_enable
`
Enable
the
Cassandra
service
to
start
at
boot
time
.
Valid
values
are
true
or
false
(
default
:
**
true
**)
#####
`
service_ensure
`
Ensure
the
Cassandra
service
is
running
.
Valid
values
are
running
or
stopped
(
default
:
**
running
**)
#####
`
service_name
`
The
name
of
the
service
that
runs
the
Cassandra
software
(
default
**
cassandra
**).
#####
`
snapshot_before_compaction
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
false
**).
#####
`
start_native_transport
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
true
**).
#####
`
start_rpc
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
true
**).
#####
`
storage_port
`
This
is
passed
to
the
[
cassandra
.
yaml
](
http
:
//docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html) file
(
default
**
7000
**).
###
Class
:
cassandra
::
datastax_agent
A
class
for
installing
the
DataStax
agent
and
to
point
it
at
an
Opscenter
instance
.
####
Parameters
#####
`
package_ensure
`
Is
passed
to
the
package
reference
.
Valid
values
are
**
present
**
or
a
version
number
(
default
**
present
**).
#####
`
package_name
`
Is
passed
to
the
package
reference
(
default
**
datastax
-
agent
**).
#####
`
service_ensure
`
Is
passed
to
the
service
reference
(
default
**
running
**).
#####
`
service_enable
`
Is
passed
to
the
service
reference
(
default
**
true
**).
#####
`
service_name
`
Is
passed
to
the
service
reference
(
default
**
datastax
-
agent
**).
#####
`
stomp_interface
`
If
the
value
is
changed
from
the
default
of
*
undef
*
then
this
is
what
is
set
as
the
stomp_interface
setting
in
**/
var
/
lib
/
datastax
-
agent
/
conf
/
address
.
yaml
**
which
connects
the
agent
to
an
Opscenter
instance
(
default
**
undef
**).
###
Class
:
cassandra
::
java
A
class
to
install
a
reasonably
sensible
Java
package
.
####
Parameters
#####
`
ensure
`
Is
passed
to
the
package
reference
.
Valid
values
are
**
present
**
or
a
version
number
(
default
**
present
**).
#####
`
package_name
`
If
the
default
value
of
*
undef
*
is
left
as
it
is
,
then
a
package
called
java
-
1.8
.
0
-
openjdk
-
headless
or
openjdk
-
7
-
jre
-
headless
will
be
installed
on
a
Red
Hat
family
or
Ubuntu
system
respectively
.
Alternatively
,
one
can
specify
a
package
that
is
available
in
a
package
repository
to
the
node
(
default
**
undef
**).
###
Class
:
cassandra
::
optutils
A
class
to
install
the
optional
Cassandra
tools
package
.
####
Parameters
#####
`
ensure
`
Is
passed
to
the
package
reference
.
Valid
values
are
**
present
**
or
a
version
number
(
default
**
present
**).
#####
`
package_name
`
If
the
default
value
of
*
undef
*
is
left
as
it
is
,
then
a
package
called
cassandra21
-
tools
or
cassandra
-
tools
will
be
installed
on
a
Red
Hat
family
or
Ubuntu
system
respectively
.
Alternatively
,
one
can
specify
a
package
that
is
available
in
a
package
repository
to
the
node
(
default
**
undef
**).
##
Limitations
Tested
on
the
Red
Hat
family
versions
6
and
7
,
Ubuntu
12.04
and
14.04
,
Puppet
(
CE
)
3.7
.
5
and
DSC
2.1
.
##
Contributers
Contributions
will
be
gratefully
accepted
.
Please
go
to
the
project
page
,
fork
the
project
,
make
your
changes
locally
and
then
raise
a
pull
request
.
Details
on
how
to
do
this
are
available
at
https
:
//guides.github.com/activities/contributing-to-open-source.
###
Additional
Contributers
*
Yanis
Guenane
(
GitHub
[@
spredzy
](
https
:
//github.com/Spredzy)) provided the
Cassandra
1
.
x
compatible
template
(
see
[#
11
](
https
:
//github.com/locp/cassandra/pull/11)).
*
Amos
Shapira
(
GitHub
[@
amosshapira
](
https
:
//github.com/amosshapira)) fixed
a
bug
in
the
requirements
metadata
that
caused
a
problem
with
Puppetfile
(
see
[#
34
](
https
:
//github.com/locp/cassandra/pull/34)).
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jun 21, 6:29 PM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3447372
Attached To
R208 puppet-puppet-cassandra
Event Timeline
Log In to Comment