COLUMN
組み込みエンジニアの戸惑い【番外編】お手軽SlackBotでローカルサーバのコマンド実行①
組み込みソフトウェアエンジニアがPythonを始めてみました。第8の戸惑い、今回は番外編としてお手軽SlackBotをPythonで実装し、社内ローカルサーバ上のコマンドが実行できるまでの流れをご紹介します。
突然の番外編には理由がありまして、当社もCOVID-19の感染予防策として在宅勤務が取り入れられました。そして、緊急事態宣言が解除された後も在宅勤務が推進され、新たなワークスタイルとして定常化されていく流れとなっています。在宅勤務では開発で使用しているサーバなどにアクセスするのが困難であったり、面倒になってくる場面が多く発生します。社内のセキュリティポリシーなども相まって、自宅からサーバまではリモートアクセスonリモートアクセスは当たり前、さらにそれを上回る接続も発生します。そんな時、普段コミュニケーションツールとして使用しているSlackを活用し、開発に役立つものはできないか?ということでSlackBotの作成が始まりました。そして、皆さまにも一部共有できたらと思い記事にしています。長くSlackを使われている方からすると他愛もない内容ですが、もしご存知ない場合は一度お試しいただけたらと思います。
Webサーバは不要!
今回はお手軽にと言うことで、色々と制限はあるのですがWebサーバを使用しない方法で実現します。必要なものは、あらかじめSlackが用意している「Bots」というSlack Appと、PythonのSlackBotライブラリ、RTM(Real Time Messaging) APIを使用したPythonコードだけです。そのため、何を実装するのかというアイデアが重要となってきます。
このSlackBotが出来ること
作成したSlackBotに対してダイレクトメッセージでのやり取りや、チャンネルにSlackBotを追加しアクセスします。会話の内容や、アップロードしたファイルなどをきっかけに、SlackBotへ実装した処理をさせ、結果を返すことができます。そのため、在宅環境からはアクセスしづらいPC上にやりたい処理をPythonで実装すれば、Slack経由でそのPCを制御することが可能です。Pythonで実装・実現出来ることなら何でも可能なので、夢が色々と広がってきませんか?在宅環境、Slack、SlackBotの位置付けは以下の図のような構成になっています。
準備①: SlackへBotsの追加
SlackワークスペースのAPPディレクトリに移動します。
https://xxxxxxxxx(ご自身のワークスペース名).slack.com/apps
↑リンク:https://my.slack.com/apps
検索Boxから“bots”で検索すると該当のアプリ「Bots」が出てくるので、選択します。
https://xxxxxxxxx(ご自身のワークスペース名).slack.com/services/new/bot
↑リンク:https://my.slack.com/services/new/bot
Botsの説明ページが開くので、「Slackに追加」ボタンを押します。
Botsの設定へと続きます。
まず、任意のユーザ名を入力し、「ボットインテグレーションを追加する」を押します。
つづいて、以下の項目を埋めていきます。
-
APIトークン:SlackBotを実装する際に必要となるので、メモしておきます。
-
名前をカスタマイズ:先ほど設定したものなのでそのまま変更しない。
-
アイコンをカスタマイズする:SlackBotの顔となり毎日見ることになるので、お気に入りの画像やアイコンを設定します。
-
氏名:SlackBotの名前として使われるので、イカした名前を設定します。
-
このボットの機能:使う人のことを考えた説明などを設定します。
-
APIトークンの使用を制限する:SlackとSlackBotを動かすサーバ側PCの間のセキュリティ設定となります。PCのグローバルアドレスを設定する必要があります。
そして、最後に「インテグレーションの保存」を押したら終了です。>
準備②:SlackBotライブラリのインストール
PythonでSlackBotを扱うためのライブラリをインストールします。
使用するライブラリは、こちら↓
https://github.com/lins05/slackbot
インストールはpipコマンドで行います。
$ pip install slackbot
今回はここまで
お手軽SlackBotの作成について、今回は環境の準備までとなりました。もう少し先に話を進めたかったのですが、キリが悪かったのであしからず。
次回はSlackBotをPythonで実装して、動かすまでのあれこれをご紹介できたらと考えておりますので、引き続きどうぞよろしくお願いいたします。
個別相談も承っております。下記よりお申し込みください。