Hubot plugin for integrating with StackStorm event-driven infrastructure automation platform.
To install and configure the plugin, first install hubot by following the installation instructions at https://hubot.github.com/docs/.
After you have installed hubot and generated your bot, go to your bot directory and install the plugin npm package:
npm install hubot-stackstorm
After that, edit the external-scripts.json
file in your bot directory and
make sure it contains hubot-stackstorm
entry.
[
...
"hubot-stackstorm"
]
Final file should look something like that:
[
"hubot-diagnostics",
"hubot-help",
"hubot-heroku-keepalive",
"hubot-google-images",
"hubot-google-translate",
"hubot-pugme",
"hubot-maps",
"hubot-redis-brain",
"hubot-rules",
"hubot-shipit",
"hubot-youtube",
"hubot-stackstorm"
]
If you want to use this plugin with a Slack adapter, you also need to install
hubot-slack
npm package.
npm install hubot-slack
After that's done, you are ready to start your bot.
To configure the plugin behavior, the following environment variable can be specified when running hubot:
ST2_API
- URL to the StackStorm API endpoint.ST2_WEBUI_URL
- Base URL to the WebUI. If provided, link to the execution history will be provided in the chat after every execution (optional).ST2_AUTH_USERNAME
- API credentials - username (optional).ST2_AUTH_PASSWORD
- API credentials - password (optional).ST2_AUTH_URL
- URL to the StackStorm Auth API (optional).ST2_COMMANDS_RELOAD_INTERVAL
- How often the list of available commands should be reloaded. Defaults to every 120 seconds (optional).ST2_MAX_MESSAGE_LENGTH
- Message truncation to preserve chat context. Default is 500 characters of length. 0 means no limit (optional).ST2_SLACK_SUCCESS_COLOR
- Slack attachement color for success, can either be one of good, warning, danger, or any hex color code (optional).ST2_SLACK_FAIL_COLOR
- Slack attachement color for failures either be one of good, warning, danger, or any hex color code (optional).
Note: ST2_ROUTE
environment variable mentioned below should only be
specified if you modified the rule which comes with a hubot
pack to use a
non default value of hubot
for the trigger.route
criteria.
ST2_ROUTE
- StackStorm notification channel where all the notification messages should be sent to. This is the reference to the channel construct internal to StackStorm's notification system. Make sure this value is set to whatever is assigned the rule that defines a StackStrom channel. e.g.hubot
is a value that works well with thehubot
pack found at https://github.com/StackStorm/st2contrib/tree/master/packs/hubot.
To run the bot, go to your bot directory and run the following command:
ST2_AUTH_USERNAME=testu ST2_AUTH_PASSWORD=testp HUBOT_SLACK_TOKEN=token ST2_ROUTE=mychannel PORT=8181 bin/hubot --name "st2-bot" -a slack --alias !
Keep in mind that you need to replace values of the environment variables so they reflect configuration of your environment.
Right now the bot won't re-authenticate with StackStorm API when the authentication token expires (usually in 24 hours after start) and you will see a similar error message in the hubot logs:
status code "401": {
"faultstring": "Unauthorized - Token has expired."
}
When this happen the best thing to do is simply restart the bot - once the bot starts up again it will retrieve a new token which is valid for another 24 hours.
For more information about this issue, please see StackStorm#45
gulp lint
gulp tests
Copyright 2015 StackStorm, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at: http://www.apache.org/licenses/LICENSE-2.0.
By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.