NuoDB Chef Cookbook
Installs and configures NuoDB.
Lots of great information on NuoDB can be found at: http://dev.nuodb.com/
Chef 0.10+
- Debian, Ubuntu
- CentOS, Red Hat, Fedora, Amazon
Tested on:
- Amazon Linux 2013.9, Ubuntu 12.10, Centos6.4 Using Vagrant with this module
To get started with Vagrant:
After starting the vagrant environment:
- You can access the following from the host machine:
- The web console at http://localhost:8080
- The rest API at http://localhost:8888
- Single node environments
- The only node started (db0) will be in Broker mode
- By default Vagrant will start one machine. From the host machine you can connect to the broker at localhost:48004 and subproceseses on localhost:48005-48020
- Multi-node environments
-
To use the multi-node scaling capabilities of NuoDB you can start multiple machines in your vagrant environment. Do this by changing one line in the Vagrantfile:
nodes = { "db" => 1 # Change this number to the number of nodes you want to start }
-
The first node (db0) will be the broker, and all other nodes (db1+) will connect to it.
-
Console access will work as above
-
Port forwarding of the broker and subprocess connections will be disabled. The only way to connect a client to the environment will be from inside the environment.
-
- On the host create a file called /var/chef/data.json with the attributes listed below using this example as a template
- Download and run the quickstart file as sudo or root
See attributes/default.rb
for default values. All values are strings unless otherwise indicated.
node[:nuodb][:version]
- What version of NuoDB to install. Download URL is auto creatednode[:nuodb][:download_url]
- This overrides the auto created download URL with another URL you can specifynode[:nuodb]["license"]
- Your license string obtained from NuoDB at www.nuodb.comnode[:nuodb][:altAddr]
- Specify this if you want other nodes to connect to this server at an address that is not local to the host (i.e. a load balancer, a proxy, an AWS public IP)node[:nuodb]["brokers"]
- Array of strings. All the hosts where you are running the agent in broker nodenode[:nuodb]["enableAutomation"]
- Boolean. Whether to enable automation on the system database. See NuoDB manualnode[:nuodb]["enableAutomationBootstrap"]
- Boolean. Should this node bootstrap the system database? See NuoDB manualnode[:nuodb]["automationTemplate"]
- How resilient should your system database be? Valid options are "Single Host" or "Minimally Redundant"node[:nuodb]["is_broker"]
- Boolean. Should this host be a broker?node[:nuodb]["start_service"]
- Boolean. Should all the services be started? This is useful incase nuodb needs to be installed for client plugins.node[:nuodb]["domain_name"]
- The name of your domain. All nodes in the same cluster should have the same domain namenode[:nuodb]["domain_password"]
- The administrative password for your domain. All nodes should have the same passwordnode[:nuodb]["loglevel"]
- Default logging level. Valid levels are, from most to least verbose: ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFFnode[:nuodb]["port"]
- What port will the agent start on?node[:nuodb]["portRange"]
- Subprocesses of NuoDB use a port range that start at a certain point and increment by one. This is that starting port (usually one port higher than the agent port)node[:nuodb]["region"]
- The name of the region this database lives innode[:nuodb][:webconsole][:port]
- Default port for the web console is 8080node[:nuodb][:webconsole][:brokers]
- Default broker for webconsole to connect to is the same as the agent. You may override this.node[:nuodb][:autoconsole][:port]
- Default autoconsole port is 8888node[:nuodb][:autoconsole][:admin_port]
- Default Autoconsole administration port is 8889node[:nuodb][:autoconsole][:brokers]
- Default broker for autoconsole to connect to is the same as the agent. You may override this.node[:nuodb][:autoconsole][:logfile]
- Default logfile is /opt/nuodb/"var/log/restsvc.log
Enabling basic monitoring via monit. If you have another monitoring system best to set this to false
node[:nuodb][:monitoring][:enable]
- Boolean. Should Monit be enabled for this node?node[:nuodb][:monitoring][:alert_email]
- The email address to send alerts tonode[:nuodb][:monitoring][:mailserver]
- What host is the mail server running on?
These attributes are in the cookbook but cannot be changed with an RPM or dpkg installation, which is the current method. They are included here only for forward compatibility.
node[:nuodb]["user"]
- "nuodb"node[:nuodb]["group"]
- "nuodb"node[:nuodb]["install_dir"]
- "/opt/nuodb"node[:nuodb]["config_dir"]
- "/etc/nuodb"node[:nuodb]["data_dir"]
- "/opt/nuodb/data"node[:nuodb]["log_dir"]
- "/opt/nuodb/logs"