Hubot을 설치하고 HipChat과 함께 작업

8280 단어 hipchatHubotNode.js

사전 쓰기



기사 찾으면 풍부하게 찾을 수 있고 초지금 경감을 부정할 수 없습니다만, 비망록으로서 남겨 둡니다.

nodebrew



hokaccha/nodebrew: Node.js version manager

설치



Node.js를 버전 관리하고 싶기 때문에 nodebrew를 사용합니다.
$ curl -L git.io/nodebrew | perl - setup

or
$ wget git.io/nodebrew
$ perl nodebrew setup

PATH 추가


echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc

~/.bashrc 다시 로드


$ source ~/.bashrc

확인


$ nodebrew help

Node.js



설치할 수 있는 버전 확인


$ nodebrew ls-remote

설치


$ nodebrew install-binary v5.7.1

버전 선택


$ nodebrew use v5.7.1
use v5.7.1

확인



설치한 버전을 모두 표시합니다.current 가 선택한 버전입니다.
$ nodebrew ls
v5.7.1

current: v5.7.1

Hubot



github/hubot: A customizable life embetterment robot.

설치



Hubot 2.9.x는 Yeoman 생성기로 설치됩니다.
$ npm install -g coffee-script yo generator-hubot

인스턴스 생성


$ mkdir myhubot
$ cd myhubot
$ yo hubot
                     _____________________________  
                    /                             \ 
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             / 
 ======= |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|                            

? Owner [email protected]
? Bot name myhubot
? Description A simple helpful robot for your Company
? Bot adapter (campfire) hipchatgot back false
? Bot adapter hipchat
   create bin/hubot
   create bin/hubot.cmd
   create Procfile
   create README.md
   create external-scripts.json
   create hubot-scripts.json
   create .gitignore
   create package.json
   create scripts/example.coffee
   create .editorconfig
                     _____________________________  
 _____              /                             \ 
 \    \             |   Self-replication process   |
 |    |    _____    |          complete...         |
 |__\\|   /_____\   \     Good luck with that.    / 
   |//+  |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|                            

시작


$ cd ~/myhubot
$ bin/hubot
myhubot> [Thu Mar 03 2016 08:16:24 GMT+0000 (UTC)] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s  | grep web-url | cut -d= -f2)`
[Thu Mar 03 2016 08:16:24 GMT+0000 (UTC)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Thu Mar 03 2016 08:16:24 GMT+0000 (UTC)] INFO hubot-redis-brain: Data for hubot brain retrieved from Redis
ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. 라는 오류가 발생했으므로 다음과 같이 수정합니다.

external-scripts.json 수정



~/myhubot/external-scripts.json
  [
    "hubot-diagnostics",
    "hubot-help",
-   "hubot-heroku-keepalive",
    "hubot-google-images",
    "hubot-google-translate",
    "hubot-pugme",
    "hubot-maps",
    "hubot-redis-brain",
    "hubot-rules",
    "hubot-shipit"
  ]

다시 시작하고 확인


$ cd ~/myhubot
$ bin/hubot
myhubot> [Thu Mar 03 2016 08:24:56 GMT+0000 (UTC)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Thu Mar 03 2016 08:24:56 GMT+0000 (UTC)] INFO hubot-redis-brain: Data for hubot brain retrieved from Redis

myhubot> myhubot ping
myhubot> PONG


HipChat



hipchat/hubot-hipchat: HipChat adapter for GitHub's Hubot

HipChat Adapter 설치



HipChat 본체는 Adapter라는 것을 통해 Hubot과 교환을 실시합니다.
$ cd ~/myhubot
$ npm install hubot-hipchat --save

~/myhubot/bin/hubot
  #!/bin/sh

  set -e

  npm install
  export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
+ 
+ export HUBOT_HIPCHAT_JID="[email protected]"
+ export HUBOT_HIPCHAT_PASSWORD="XXXXXX"
+ export HUBOT_HIPCHAT_ROOMS="[email protected]"
+ export HUBOT_LOG_LEVEL="debug"

  exec node_modules/.bin/hubot --name "myhubot" "$@"

시작


$ bin/hubot -a hipchat

확인



forever forever를 설치하여 Hubot을 데몬화합니다. foreverjs/forever: A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)

설치


$ npm install forever -g

bin/hubot 편집



bin/hubot
  #!/bin/sh

  set -e

  npm install
  export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"

  export HUBOT_HIPCHAT_JID="[email protected]"
  export HUBOT_HIPCHAT_PASSWORD="XXXXXX"
  export HUBOT_HIPCHAT_ROOMS="[email protected]"
  export HUBOT_LOG_LEVEL="debug"

- exec node_modules/.bin/hubot --name "myhubot" "$@"
+ forever start -c coffee node_modules/.bin/hubot -a hipchat

시작


$ bin/hubot
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: node_modules/.bin/hubot

확인


$ forever list
info:    Forever processes running
data:        uid  command script                             forever pid  id logfile                         uptime
data:    [0] 2sAI coffee  node_modules/.bin/hubot -a hipchat 2137    2142    /home/vagrant/.forever/2sAI.log 0:0:0:19.806

참고문헌


  • Hubot을 설치, hipchat와 연계하여 forever로 데몬화 (CentOS6.4) - Qiita
  • 【Hubot】Hubot과 HipChat으로 간편한 ChatOps 만들기 - Quadrophenia
  • 좋은 웹페이지 즐겨찾기