This Chef cookbook installs Mojo Lingo's Adam Snark Rabbit intelligent assistant.
Tested on Ubuntu 12.04 and Debian 7.
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.
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 |
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. | "git@github.com: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' => "" } ] ``` |
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
.