気軽にAWS+Vagrant+Slack+Hubot導入
やりたいこと
■ChatOpsの現実的な利用方法確立
■CI/CD/TDDの土台作り
■SaaSを分けることで可用性を担保できるようにする
■「自動化」って結局何を積み重ねているのかを可視化する
今回やったこと
■Qiitaを見回った
■VagrantでAWS-ProviderからEC2を構築した
■プライベートSlackにHubotを招待した
次にやるべきこと
■GitHubのIssueをHubotからSlackに通知させる
ワークフロー
VagrantからAWSのEC2を立ち上げる
【参考】
cd vagrant
mkdir aws
vagrant plugin install vagrant-aws
vagrant init
Vagrantfileの設定は下記の通り
# -*- mode: ruby -*-
# vi: set ft=ruby :
AWS_ACCESS_KEY_ID = "ほげ"
AWS_SECRET_KEY = "ぴよ"Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.provider :aws do |aws, override|
aws.ami = "ami-9f0c67f8"
aws.tags = { 'Name' => 'VagrantAL'}
aws.instance_type = "t2.micro"
aws.security_groups = ["sg-67981700"]
aws.access_key_id = AWS_ACCESS_KEY_ID
aws.secret_access_key = AWS_SECRET_KEY
aws.region = "ap-northeast-1"
aws.keypair_name = "vagrant"
override.ssh.username = "ec2-user"
override.ssh.private_key_path = "C:/vagrant/AWS/ssh/vagrant.pem"
aws.subnet_id = "subnet-bb96f5cd"
aws.private_ip_address = "172.31.100.10"
aws.elastic_ip = true
endend
プライベートSlackにHubotをIntegration Settingする
【参考】
Browse AppsからHubotを検索
Setup Instructionsに表示されるAPI Tokenを下記で使う
EC2にSSH接続してHubotをインストールする
sudo yum install nodejs npm --enablerepo=epel
sudo npm install -g n
sudo n stable
# Yeoman (yo) と Hubot の Yeoman ジェネレーター (generator-hubot) をインストール
sudo npm install -g yo generator-hubot
sudo npm install inherits -g
sudo npm list -g generator-hubot yo
cd /opt/
mkdir empty && cd empty
export HUBOT_SLACK_TOKEN="Slack API Token"
# 4項目めのBot AdapterにSlackを入力
yo hubot
bin/hubot -a slack
SlackのDMで話しかける
適当な部屋に招待して話しかける
まいめも
ChatWorkだとこんな感じらしい、API申請通ったらやってみよう
ようやくはてなDTを卒業した…一記事坊主にならないよう頑張る!