CentsOS7にHubotをインストールしてみた
いまさらながら、下記書籍を使用し、slackに関していろいろ試すためにまずは環境整備。 Hubotを利用する環境を CentsOS7に整えるための備忘録。
- 作者: 松下雅和,小島泰洋,長瀬敦史,坂本卓巳
- 出版社/メーカー: 技術評論社
- 発売日: 2016/06/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
目次
- 目次
- 環境
- 最初に(少しハマったこと・・・)
- 参考URL
- nvmの用意
- node.jsをインストール
- 利用できるバージョンを確認とデフォルト利用バージョンの設定
- Hubotのインストール
- プロジェクトの新規作成
- botを起動
環境
下記のとおり、CentOS7.2を利用する。ここでは、まだNode.jsはインストールされていないため 後で、インストールする。
[myhubot@cent7 bot]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [myhubot@cent7 bot]$
最初に(少しハマったこと・・・)
- rootでインストール作業しない
rootでインストールすると、以降の作業の局面で、下記のようなエラーに遭遇する。 パーミッション変更などで、対応してみたが、別の一般ユーザーを新たに作り、 セットアップをしたら、すんなりいったので、ここでは、別の一般ユーザー「myhubot」を作ったうえで作業する。
[root@cent7 bot]# yo hubot /root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/configstore/node_modules/mkdirp/index.js:90 throw err0; ^ Error: EACCES: permission denied, mkdir '/root/.config' at Error (native) at Object.fs.mkdirSync (fs.js:794:18) at sync (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/configstore/node_modules/mkdirp/index.js:71:13) at Function.sync (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/configstore/node_modules/mkdirp/index.js:77:24) at Object.create.all.get (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/configstore/index.js:38:13) at Object.Configstore (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/configstore/index.js:27:44) at new Insight (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/node_modules/insight/lib/index.js:37:34) at Object.<anonymous> (/root/.nvm/versions/node/v4.6.1/lib/node_modules/yo/lib/cli.js:172:11) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) [root@cent7 bot]#
- node.jsは v4.2を利用した。
2016年10月時点で、 node.jsは「v4.6」がダウンロード可能な模様だが、参考URLのとおり、「v4.2」を利用した。
以上を踏まえて、(いいか悪いかは別として)一般ユーザー「myhubot」で node.jsは v4.2を利用する前提で、以降を実施した。
参考URL
基本下記をそのまま実施したらうまくいった。(ありがたや~)
nvmの用意
nvmはnode.jsのバージョンを簡単に切り替えられるツールとのことなので、 まずは、インストール。
[myhubot@cent7 ~]$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0. 29.0/install.sh | bash ~ 中略 ~ [myhubot@cent7 ~]$ source ~/.bashrc [myhubot@cent7 ~]$ nvm --version 0.29.0 [myhubot@cent7 ~]$
node.jsをインストール
[myhubot@cent7 ~]$ nvm install v4 ~ 中略 (いろいろ出力され・・)~ Now using node v4.6.1 (npm v2.15.9) [myhubot@cent7 ~]$
「node v4.6.1」がインストールされた模様。使いたいのは「v4.2」なので、 明示的に指定し、インストールする。
[myhubot@cent7 ~]$ nvm install v4.2 Downloading https://nodejs.org/dist/v4.2.6/node-v4.2.6-linux-x64.tar.xz... ######################################################################## 100.0% WARNING: checksums are currently disabled for node.js v4.0 and later Now using node v4.2.6 (npm v2.14.12) [myhubot@cent7 ~]$
利用できるバージョンを確認とデフォルト利用バージョンの設定
[myhubot@cent7 ~]$ nvm ls -> v4.2.6 v4.6.1 node -> stable (-> v4.6.1) (default) stable -> 4.6 (-> v4.6.1) (default) iojs -> N/A (default) [myhubot@cent7 ~]$
デフォルトv4.6.1となっているようなので、 下記のとおり、明示的に「v4.2」を使うことを指定するとともに、
[myhubot@cent7 ~]$ nvm use v4.2 Now using node v4.2.6 (npm v2.14.12) [myhubot@cent7 ~]$
デフォルト利用するバージョンをv4.2に設定する。
[myhubot@cent7 ~]$ nvm alias default v4.2.2 ! WARNING: Version 'v4.2.2' does not exist. default -> v4.2.2 (-> N/A) [myhubot@cent7 ~]$
Hubotのインストール
下記のように、Hubotをインストールする
[myhubot@cent7 ~]$ npm install -g hubot coffee-script [myhubot@cent7 ~]$ npm install -g yo generator-hubot
なお、「yo」とはYeomanとうhubotのプロジェクトの構築ツール?のようなもので 当ツールの雛形を利用したプロジェクトの作成が推奨されている模様。
プロジェクトの新規作成
yoコマンドを使用し、プロジェクト新規作成する。 ここでは、myhubotユーザーのホームディレクトリに「bot」ディレクトリを 作成し、そこで、作業したものとする。
[myhubot@cent7 ~]$ pwd /home/myhubot [myhubot@cent7 ~]$ mkdir bot [myhubot@cent7 ~]$ cd bot [myhubot@cent7 bot]$ yo hubot ? ========================================================================== We're constantly looking for ways to make yo better! May we anonymously report usage statistics to improve the tool over time? More info: https://github.com/yeoman/insight & http://yeoman.io ========================================================================== Yes _____________________________ / \ //\ | Extracting input for | ////\ _____ | self-replication process | //////\ /_____\ \ / ======= |[^_/\_]| /---------------------------- | | _|___@@__|__ +===+/ /// \_\ | |_\ /// HUBOT/\\ |___/\// / \\ \ / +---+ \____/ | | | //| +===+ \// |xx| ? Owner <user@example.com> ? Bot name bot ? Description A simple helpful robot for your Company ? Bot adapter campfire ~ 中略 ~
下記設定の入力が求められるが、参考URLのとおり、デフォルト(全部Enter)で設定してみた。
botを起動
下記のように、hubotを起動する。 下記の通り、エラーがでるが、ここではひとまず無視してGO!
[myhubot@cent7 bot]$ bin/hubot bot> [Tue Oct 18 2016 09:03:50 GMT+0900 (JST)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script. Your hubot-scripts.json is empty, so you just need to remove it. [Tue Oct 18 2016 09:03:50 GMT+0900 (JST)] 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)` [Tue Oct 18 2016 09:03:51 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
プロンプトが入力待ちになったら、「bot ping」と実行する。 「PONG」と返答されれば、正常に稼働している模様。
bot> bot ping bot> PONG bot>
「たったこれだけ?」と思うところだが、まぎれもなくコンピュータのボットと会話が成立していると思うと、 少しうれしい。
この環境と先の書籍をを利用して、いろいろ試していく予定。