--------------------
# 目的
--------------------
Ansibleを利用したネットワーク自動化検証案件が終わり、上長に意味のないようなトレーニング資料を作成するようタスクを振られたことがきっかけ。片手間にAnsibleを使って自動化できるところがないか探したところ、検証環境へアクセスするためのVPNパスワードを定期的に社内ルールのパスワードに変更する業務を怠っている部長を見兼ねて勝手に自動化してしまおうと計画し、一週間でフルオートでパス変更からMicrosoftTeamsのWebhookコネクタで通知するシステムを完成させた。
--------------------
# 最終的なゴール
--------------------
- 手順化されている定常業務を自動化すること
- メンテナンスや拡張を容易にする
- 極力スパゲッティにしない
- APIを投げたい(ただの欲)
--------------------
# やったこと
--------------------
- SharePoint API
社内システムはSharePointをベースとしたページを利用している。このページから情報を取り出すには、認証が済んだCookieを利用しなければならず、この自動化に一番時間がかかった。
- Cisco 891J
検証環境サーバの目前に配置されているVPNルータである。外部から接続するには、このVPNに接続する必要がある。このルータのパスワードを毎月パスワード設定する業務を部長が行っていた。しかし、2018/03以降変更されておらず接続できなかった。社外のビジネスパートナーや社内の各部署に利用者がいたため、早急に対処をしようと独断で事に至った。
- ボット
- VPNパスワード変更ボット
パスワードの変更をSharePointから一定期間ごとに取得し、変更を察知した時点でAnsibleのvarsへ変更を加えて変更をかける。変更後に当月パスワードをMicrosoftTeamsで通知する。すべてフルオートで稼働。
- Lunchボット
社内食堂のメニューをSharePointから取得し、日替わりランチと週替わりランチを通知するボットを作成した。Microsoft Flowを利用することで、ノンコーディングでも実現できたがカレンダーのコピーを手動で行わなければならないことはイケていないと判断してボット化した。
- 交通情報ボット
交通アプリを使えばプッシュ通知で完結するものだが、入れていない社員もいたので。ボットで通知できれば便利だと感じて作成した。
--------------------
# アピール
--------------------
- APIを触って情報を取得し、必要な情報を切り抜いて整頓。その情報をボットに発信させた。
- Cisco機器をコントロールするAnsibleモジュールを利用して定期的にパスワードを更新。社員のみが参加するTeamsにボットとして通知させた事により人間の行う1プロセスを削減することに成功。
- 余った時間を使い、社内食堂のメニュー通知を行うボットを作成。提供後便利だと言われた為継続稼働中。
- Yahooより電車遅延情報を取得し通知するボットを作成したところ、遅延情報を見れるのは便利と言われたためこれも継続稼働。