This role installs RethinkDB on nodes to form a clustered environment.
Define you target cluster nodes in the host inventory file; example host
inventory, playbooks, and a Vagrantfile
are in the examples
directory.
This role has basic functionality verified with the following software:
- RethinkDB (version 2.2.4)
- Ansible (version 2.0.0.2)
- CentOS (version 7)
- Debian (version 8)
- Ubuntu (version 14.04)
In cases where you want simple clusters for development or other non-production use, the default values for this role's common variables can be left as-is.
Should you need specific performance or otherwise wish to tweak them for your particular purpose, this section describes all the user editable variables in detail including their default values for your reference.
Name | Default | Description |
---|---|---|
rethinkdb_runuser | rethinkdb |
RethinkDB OS user |
rethinkdb_rungroup | rethinkdb |
RethinkDB OS group |
rethinkdb_cache_size | 1024 |
The cache size in megabytes |
rethinkdb_cores | 2 |
Number of CPU cores to allocate |
rethinkdb_io_threads | 64 |
Number of disk I/O threads to allocate |
rethinkdb_admin_port | 8080 |
Administration and web console port |
rethinkdb_driver_port | 28015 |
Driver port |
rethinkdb_cluster_port | 29015 |
Intracluster communication port |
rethinkdb_filesystem | ext4 |
Default filesystem for data and index volumes |
rethinkdb_mountpoint | / |
Logical volume mountpoint |
rethinkdb_partition | /dev/mapper/VolGroup-lv_root |
Logical volume partition |
rethinkdb_mount_options | noatime,barrier=0,errors=remount-ro |
Additional mount options |
rethinkdb_data_path | /var/lib/rethinkdb/default |
Path to data files |
rethinkdb_log_path | /var/log/rethinkdb |
Path to log file |
Set the following variables with caution as they have potential negative performance implications; do not enable them without knowledge of the OS level changes applied:
Name | Default | Description |
---|---|---|
rethinkdb_tune_os | false |
Whether to tune OS with optimized settings |
The examples
directory contains host inventory examples, some basic
playbooks and a Vagrantfile
(primarily aimed at Mac OS X development use):
build_cluster.yml
installs RethinkDB and creates a clusterexample_hosts
example hosts inventory in format required by this projectVagrantfile
example Vagrant development cluster definitioncentos
CentOS hosts inventory for Vagrant based development clusterdebian
Debian hosts inventory for Vagrant based development clusterredhat
Red Hat hosts inventory for Vagrant based development clusterubuntu
Ubuntu hosts inventory for Vagrant based development cluster
Follow these steps to have a simple 3 node development or evaluation cluster on a >= 8GB Mac with Vagrant and VirtualBox:
- export ROLEPATH=ANSIBLE_ROLE_PATH
- Edit
/etc/hosts
or use includedexamples/bin/preinstall
script to add the following entries to your development system's/etc/hosts
file:
- 10.1.42.101 node1.local node1
- 10.1.42.102 node2.local node2
- 10.1.42.103 node3.local node3
ansible-galaxy install brianshumate.rethinkdb
- cd $ROLEPATH/brianshumate.rethinkdb/examples
- vagrant plugin install vagrant-hosts
- vagrant up
This will install three (3) Debian 8 nodes with 1.5GB RAM each and cluster
them together. The nodes will be available at 10.1.42.101, 10.1.42.102, and
10.1.42.103 as defined in the Vagrantfile
.`
To install Ubuntu based nodes, change the command in step 6 to:
BOX_NAME=ubuntu/trusty64 CLUSTER_HOSTS=ubuntu vagrant up
NOTE: Due to issue 83 you will see a duplicate database error when initially accessing the cluster since the default test database is created on each of the 3 nodes before the cluster is formed. Just rename/delete the databases as needed to work around this.
None
BSD
- Brian Shumate (brian at brianshumate.com)