Why, What, How
所属している会社には、毎月1日に利用している端末からWebサービス、その他諸々のパスワードを変更して、メールでマネージャーに報告しなければいけないという決まりがある。マネージャーは受け取ったメールを検索して「誰々がまだ変更してないからメールで催促して―」といったことをしないといけないので、メールは決まったフォーマットで送らなければならない。
パスワード変更を義務付ける前に2段階認証を義務付けて欲しいこととか、パスワードを毎月変えるとどれぐらいセキュリティ上の安全性が高まるのかっていう話をBizの偉い人たちに持ちかける事はもう諦めてしまったので、そのクリエイティブさを感じない運用方法だけでもどうにかできないかと、
https://github.com/bugcloud/chcklst
https://gist.github.com/bugcloud/6f788316658a63328f63
を書いた。
タイトルの通り、「使い捨てのチェックリストを生成するWebサービス」と「そのクライアントとして動作するHubotスクリプト」
GitHubのIssueやPull Requestにチェックリストをつけるのが便利でよく使っているので、その部分だけをWebサービス化した。
こんな感じにHubotにお願いすると、
こういうページが返ってくる。あとはみんなでチェックするだけ。チェック状態は保存される。
hubot-cronで定期的にチェックリストを発行して通知する
hubot-cronを使うことで「月の初めにチェックリストを発行して全員に通知」というのが自動化できる。
所属の会社ではチャットツールにHipChatが使われていて、Hubotが自身のHubotタスクを呼び出すことができないため、ひと工夫が必要。HipChat Bot LabにいるHearsayを利用する。
cronに固定メッセージを登録
@hubot new job 30 9 1 * * @all パスワード更新の時間です。update password
のような感じに、毎月1日に全員宛てに固定のメッセージが飛ぶようにする。
Hearsayが固定メッセージに反応してHubotタスクを実行する
Hearsayの設定を
こんな感じにして、固定メッセージをトリガーにHubotタスクでチェックリストを発行する。
これで毎月1日にパスワードを更新したかどうかを確認するためのチェックリスト生成が自動化できた。