cookbook 'hubot', '= 1.0.2'
The hubot cookbook has been deprecated
Author provided reason for deprecation:
The hubot cookbook has been deprecated and is no longer being maintained by its authors. Use of the hubot cookbook is no longer recommended.
hubot (8) Versions 1.0.2 Follow13
Deploys and manages an instance of Github's Hubot.
cookbook 'hubot', '= 1.0.2', :supermarket
knife supermarket install hubot
knife supermarket download hubot
hubot cookbook
Deploys and manages an instance of GitHub's Hubot.
Usage
Include recipe[hubot]
in your run_list and override the defaults you want
changed. See below for more details. Hubot instances are
configured using environment variables passed to the Hubot process. These
environment variables can be set using the node['hubot']['config']
attribute.
I hightly recommend integrating this cookbook into your own infrastruce using
the
library/application cookbook pattern.
You would start by creating a YOURCOMPANY-hubot
cookbook with a proper
metadata depedency on the hubot
(this) cookbook. A concrete example can be
found on this gist
which was created from bits of the internal opscode-hubot
cookbook which we
use to deploy, Paula Deen, Opscode's hubot instance.
One important item to note is the use of the
remote_directory
resource to distribute our internal hubot scripts to the install:
remote_directory "#{node['hubot']['install_dir']}/scripts" do source "scripts" files_backup 0 files_owner node['hubot']['user'] files_group node['hubot']['group'] files_mode 00644 owner node['hubot']['user'] group node['hubot']['group'] overwrite true mode 00755 notifies :restart, "service[hubot]", :delayed end
Requirements
Chef
Tested on Chef 11 but newer and older version should work just fine. File an
issue if this isn't the case.
Platform
The following platforms have been tested with this cookbook, meaning that the
recipes and LWRPs run on these platforms without error:
- Ubuntu 10.04, 11.04, 12.04, 12.10
- CentOS 6
Cookbooks
This cookbook depends on the following external cookbooks:
Recipes
default
- Ensures that Node.js is installed and available using the nodejs cookbook.
- Ensures git is installed and available using the git cookbook.
- Ensures runit is installed and available using the runit cookbook.
- Creates a user and group to install and run the Hubot instance under.
- Installs the specified Hubot version from git.
- Renders instance-specific
package.json
,hubot-scripts.json
, andhubot.conf
files. - Creates and enables a
hubot
runit service to run the Hubot instance under. The runit service reads thehubot.conf
file and passes the contents onto the underlying hubot process as configuraiton.
Attributes
Attribute | Description | Type | Default |
---|---|---|---|
version | Hubot version to install. | String | 2.4.6 |
scripts_version | Version of hubot-scripts (community collection of hubot scripts) to install. | String | 2.4.1 |
install_dir | Directory the Hubot instance will be installed to. | String | /opt/hubot |
user | The user to install and run the Hubot instance under. | String | hubot |
group | The group to install and run the Hubot instance under. | String | hubot |
name | The name of the robot in chat. | String | hubot |
adapter | The Hubot adapter to use. | String | campfire |
config | Hash of values that will be converted into environment variables and passed to the Hubot process. | Hash | Hash.new |
dependencies | Hash in form dep_name => dep_version that will be rendered into Hubot instance's package.json . A common dep to set in this attribute is non-Campfire adapters. |
Hash | Hash.new |
hubot_scripts | Scripts to enable from the community collection of hubot scripts. | Array | Array.new |
Testing
This cookbook ships with full support for the new alpha version of Opscode's
test-kitchen
. Fletcher Nichol's excellent Jamie
integration test runner was
recently merged into the test-kitchen codebase.
This merge and all new feature work are now taking place in the
1.0 branch of test-kitchen.
Even though many community members have been dogfooding the new test-kitchen
codebase and it has proven quite stable, it should still be regarded as
pre-release code and YMMV.
Running integration with test-kitchen is easy. First we'll assume you have a
sane cookbook development toolchain installed which includes:
- Git
- Ruby 1.9.x
- Bundler
- VirtualBox 4.x
If you need help setting up this toolchain, take a read through the
"System Setup"
section of Jamie Winsor's excellent cookbook
authoring guide.
First install all gem dependencies with Bundler:
$ bundle install --binstubs
Bundler will install all of the dependent RubyGems and guarantee that you have
the right versions. Now it's time to get your test on:
$ bundle exec kitchen test
This command will do the following across every platform/version this cookbook
supports:
- Use Vagrant to provision a platform-specific VM.
- Add a
recipe[hubot]
entry to the instance's run_list. - Converge the VM with
chef-solo
.
By default, any VM that successfully converges will automaticallly be cleaned
up. The full set of kitchen
subcommands can be viewed by running:
$ bundle exec kitchen help
Development
- Source hosted at GitHub
- Report issues/Questions/Feature requests on GitHub Issues
I <3 pull requests! Make sure your patches are well tested. Ideally create a
topic branch for every separate feature/fix you make.
License and Author
Author:: Seth Chisamore (schisamo@gmail.com)
Copyright (c) 2013, Seth Chisamore
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
git >= 0.0.0 |
nodejs >= 0.0.0 |
runit >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.