Skip to content

mojolingo/adam_cookbook

Repository files navigation

Adam Snark Rabbit cookbook

This Chef cookbook installs Mojo Lingo's Adam Snark Rabbit intelligent assistant.

Requirements

Tested on Ubuntu 12.04 and Debian 7.

Usage

Add recipe[adam_snark_rabbit] to your node's run list to install all Adam components to a single machine. Make sure to set all required attributes below.

Alternatively select appropriate recipes for individual components for distributed deployment.

Recipes

Recipe Description
adam_snark_rabbit Deploys all default components of Adam to the same box
adam_snark_rabbit::base Sets up base system requirements for deployment of Adam Snark Rabbit components
adam_snark_rabbit::app Deploys the selected application components of Adam Snark Rabbit
adam_snark_rabbit::mongo Installs MongoDB for use by Adams Memory
adam_snark_rabbit::rabbitmq Install RabbitMQ, Adams nervous system
adam_snark_rabbit::rayo Installs a Rayo server for use by Adam to provide the Ears service
adam_snark_rabbit::remove_dash Removes Dash as the default shell from Ubuntu due to incompatability with POSIX sh
adam_snark_rabbit::user Sets up the Adam user
adam_snark_rabbit::xmpp Installs an XMPP server for use by Adam components including Fingers

Attributes

Attribute Description Default
adam/environment The environment in which to run Adam's application components. Affects logging, defaults settings, etc. "production"
adam/standalone_deployment Wether to deploy Adam's application components in a production manner (true), or to inherit from a shared directory (false) for the use of active development of Adam's application components. true
adam/deployment_path The path at which to deploy Adam's application components. "/srv/adam"
adam/app_repo_url The URL of the repo from which to clone Adam's source code. "[email protected]:mojolingo/Adam.Snark.Rabbit.git"
adam/app_repo_ref The repository reference (git branch, tag or commit ID) to checkout for deployment. The default of "master" provides the latest changes to Adam. Adam does not currently get versioned releases (for purposes of continuous deployment). "master"
adam/deploy_key The private SSH key with which to clone the Adam Snark Rabbit source repository for deployment. Must be specified with newlines intact. nil
adam/root_domain The root domain of the Adam deployment. This is particularly for XMPP JIDs. `node['fqdn']`
adam/memory_base_url The base address at which to access Adam's Memory component. This is used for XMPP authentication and authenticating messages received from senses by the Brain. 'http://localhost'
adam/amqp_host The hostname/IP at which to access the AMQP server (Adam's nervous system). 'localhost'
adam/rayo_domain The domain at which to access Adam's Rayo service for telephony connectivity. `node['adam']['root_domain']`
adam/reporter/url The exception reporter URL to use. "http://errors.mojolingo.com"
adam/reporter/api_key The exception reporter API key. ""
adam/wit_api_key The API key for Wit (semantic interpretation of messages) connectivity. ""
adam/brain/install Wether or not to install the Brain on this node. true
adam/ears/install Wether or not to install Ears on this node. true
adam/ears/punchblock_port The port on which Ears should attempt to connect to the Rayo service. This default is modified by the default recipe (to port 5224) to avoid collisions between Rayo and the XMPP server. 5222
adam/fingers/install Wether or not to install Fingers on this node. true
adam/memory/install Wether or not to install Memory on this node. true
adam/memory/internal_username The internal username with which to authenticate Adam's components against Memory. 'internal'
adam/memory/internal_password The internal password with which to authenticate Adam's components against Memory. 'abc123'
adam/memory/mongoid_host The host on which MongoDB is running for data storage. '127.0.0.1'
adam/memory/bosh_host The host to which BOSH (XMPP) requests should be forwarded from the reverse proxy. This should be the host on which the XMPP server is running. 'localhost'
adam/memory/application_servers The set of servers running the Memory application server. Since the reverse proxy and application server are always colocated on the same machine, you should never need to change this. `['127.0.0.1']`
adam/rayo/listeners The Rayo listeners to use. The default is setup to listen for c2s connections on port 5222 on both the external IP of the Rayo server as well as loopback (for convenience of debugging and colocation). This default is modified by the default recipe (to port 5224) to avoid collisions between Rayo and the XMPP server. ``` [ { 'type' => "c2s", 'port' => "5222", 'address' => "$${rayo_ip}", 'acl' => "" }, { 'type' => "c2s", 'port' => "5222", 'address' => "127.0.0.1", 'acl' => "" } ] ```

Testing

In order to run tests (using Test Kitchen) you will need to place a deploy key for Adam Rabbit in ./deploy_key. You can then run the full test suite using make.

Author

Ben Langfeld

About

Chef cookbook for deploying Adam Snark Rabbit

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages