Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@IsaoNakamura

Slack経由でRaspberryPiのIPアドレスを取得する

More than 3 years have passed since last update.

Slack経由でRaspberryPiのIPアドレスを取得する

1. はじめに

どうもISAOXです。
今回もSlack経由でRaspberryPiに何かやらせるシリーズです。
以下の投稿記事でSlack上でBOTに命令を出せば遠隔のRaspberryPi(以下RPi)のスクリプトを実行できるようになりました。
この記事の環境もこれをベースにしてます。参考下さい。

今回はRPiのIPアドレスをSlackにメッセージを送信させます。
IPアドレスはちょっとした時に知りたい情報です。
これができれば、sshでネットワーク経由でRPiに接続できたりできます。

2. 前提条件

この記事の前提条件は以下です。

  • インターネットに接続したRaspberryPi(Raspbian)がある。
  • RPi上でHUBOTを起動できる環境にしている
  • Slackを利用している + Slack上でHUBOT用のBOTを追加している。

3. RPiにIPアドレスを取得させる道具の準備

RPi上でのIPアドレス取得は以下のコマンドを使います。
ifconfig

なので、ifconfigを実行するShellスクリプトを用意してRPi上に配置します。
コマンドオプションも渡せる仕様です。

ifconfig_cmd.sh
#!/bin/sh

ifconfig $@

4. RPi上のHUBOTがShellスクリプトを呼ぶ準備

RPi上のHUBOTが読み込むcoffeeスクリプトに『ifconfig』という文字列が来たら上記Shellスクリプトを呼び出す命令を追記します。
追記したらRPiを再起動するなどしてHUBOTが最新のcoffeeスクリプトを読み込んでおくようにしておきましょう。

test.coffee
  robot.respond /ifconfig (.*)|ifconfig/i, (msg) ->
    # msg.send "match[0]: #{msg.match[0]}"
    # msg.send "match[1]: #{msg.match[1]}"
    arg = msg.match[1]
    @exec = require('child_process').exec
    command = "sudo -u pi sh /home/pi/GitHub/StudyRPi/Hubot/iotbot/my_exec/ifconfig_cmd.sh"
    command = "#{command} #{arg}" if arg?
    msg.send "Command: #{command}"
    @exec command, (error, stdout, stderr) ->
    msg.send error if error?
    msg.send stdout if stdout?
    msg.send stderr if stderr?

5. Slack上のBOTにIPアドレスを取得するように命令する

Slack上でBOTに以下のようにしてIPアドレスを取得するよう命令します。
するとBOTが反応しRPiのShellスクリプトを実行してくれました!
Picture
※上のスクリーンショットはSlack上の『DIRECT MESSAGES』上で入力しているので頭に指定するBOT名は省略してます。

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?