かいだんのーと

のーとの主の備忘録とか、やってることとか。

【ST2】slackから操る~Pack検証、その前に~

※この記事はAPC Advente Calendar 2018 24日目向けに作成されています。

はじめに

StackStormというものがあります。
こちらが何であるかはこの記事をご参照ください。

techblog.ap-com.co.jp

今回は、EC2へStackStorm「2.9.2」を導入し、chatopsをONにしてslackからコマンド実行を行うまでにしたことをまとめました。
参考にさせて頂いた記事は末尾にまとめて記載します。

やったこと

  1. 事前準備
  2. EC2インスタンス作成
  3. st2インストール
  4. chatops有効化

1.事前準備

  • st2で使用したいID/PWを決めておく
  • slackのワークスペースを作っておく
  • hubotのappを設定しておく

検索して… f:id:st22dream:20181215115643j:plain 設定追加。 f:id:st22dream:20181215115653j:plain

名前などを決めて設定を追加したら上の画像のページに「Hubot を Slack に (bot名) として接続 」という項目が現れます。
「設定を編集」をクリックすると、APIトークンが表示されます。
この値をあとで使います。
f:id:st22dream:20181215120315j:plain

2.EC2インスタンス作成

今回使用したものはこちら。

OS:Red Hat Enterprise Linux 7.6 (HVM), SSD Volume Type - ami-08419d23bf91152e4
インスタンスタイプ:t2.medium

WebUI接続を試したい場合はセキュリティグループで80と443ポートを開けておいてください。

Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0a2de1c3b415889d2だとインストールコマンドを叩いてもUnknown Operationg Systemと返ってきてしまいました。。。

3.st2インストール

Quick Installのところにあるとおり、curlをいれてから、IDとPWを事前に決めておいたものに変えたワンライナーインストーラーをGO。 https://docs.stackstorm.com/install/index.html#ref-one-line-install

IDを「st2admin」、PWを「ststtestp」で入れたい場合はこうなります。

# sudo yum install curl nss  
# curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password='ststtestp'    

でけた。
ここまではOSとインスタンス形式の選定を誤らなければいけると思います。
f:id:st22dream:20181215121905j:plain

4.chatops有効化

ここからが参考にしたサイトより新しくなった部分です。
現在のバージョンではすでにchatopsの機能が搭載されているため、あれこれせずにいきなり設定ファイルの編集に入れるようになりました。

ということでバックアップを作ったら、さっそく「st2chatops.env」の編集を行います。

# cd /opt/stackstorm/chatops/  
# cp -p st2chatops.env /var/backup/$(pwd)/st2chatops.env.20181215  
# vi st2chatops.env  

書き換えるのは大きく3か所です。

  1. bot
  2. st2への認証情報
  3. slackへの連携有効化/HUBOTトークン入力

名前は「はむbot」にしたはむ。 f:id:st22dream:20181215125824j:plain

認証情報は、インストール時に決めたのと同じものをいれてください。 f:id:st22dream:20181215125845j:plain

「export HUBOT_ADAPTER=slack」のコメントアウトを削除。
「CHANGE-ME-PLEASE」になっているところにトークンが入ります。
f:id:st22dream:20181215130043j:plain

あとは、サービスのリロードをすれば、

# sudo systemctl start st2chatops  
# sudo systemctl enable st2chatops  
# sudo st2ctl reload --register-all  

slackにbotが現れます!
f:id:st22dream:20181215131632j:plain

チャンネルを作成してbotを招待します。
f:id:st22dream:20181215131910j:plain

コマンド「!help」を打って、helpが表示されれば成功です!
f:id:st22dream:20181215132012j:plain

お疲れさまでした。
これでslackからst2のコマンドを実行できるようになりました。

chatops機能をslackと連携させると、様々なpackを導入した際に値の返し先としてslackを選択できるようになります。 pack検証の前にやっておくと、やれることをぐっと増やしてくれそうです。

参考サイト

【初心者必見】stackstormのインストール方法 | New Relic|日商エレクトロニクス株式会社
StackStormでSlackによるChatOpsの設定をする | 俺的備忘録 〜なんかいろいろ〜

蛇足

こんなスライドがあります。

www.slideshare.net

何も知らずに足を運んだ勉強会で見たこの発表で「なんだこのすごいの?!」と思って早1年半以上。
今年は検証チームにもロクに顔を出せなかったのですが、ここから粛々と検証を始めようかと思っております。
本当はそのために開いたブログだったので、また何か掴んだら書きに来ますね。

ここまでお読みいただきありがとうございました。