Armoris日記 Mattermost CLI編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

Mattermost CLIを使う

そもそも Mattermost とは何か

Mattermost とはオープンソースで開発されているチャットサービスです。使用感や UI は Slack によく似ています。そのため Slack を使用したことがある人ならばすぐに馴染めると思います。

今回は Mattermost を使用する際にコマンドラインでユーザーの作成等が行える Mattermost CLI を実際の使用例を交えて紹介していこうと思います。

今回紹介するコマンド以外にも便利なコマンドがたくさんあるため、興味がある方は以下URLから公式リファレンスを参照してください。

基本の使い方

Mattermost CLI のコマンドを使うためにはインストール時に Mattermost を展開した場所の中にある Mattermost ファイルを指定する必要があります。
この時公式リファレンスでは Mattermost のルートディレクトリから実行しろとあるので、デフォルトでインストールした場合は以下のように使います。

cd /opt/mattermost
bin/mattermost {command}

ユーザー作成

Mattermost CLI でユーザーを作成する場合は以下のようにメールアドレスとユーザー名、パスワードを指定します。

bin/mattermost user create --email user@example.test --username user --password Password

以下はuser createで指定できるオプションです。
--system_adminを指定すれば管理者アカウントを作成することができます。

--email string       Email
--firstname string   First Name
--lastname string    Last Name
--locale string      Locale (ex: en, fr)
--nickname string    Nickname
--password string    Password
--system_admin       Make the user a system administrator
--username string    Username

ユーザーをチームに追加

作成したユーザーをチームに参加させるには以下のようにユーザーのメールアドレスとユーザー名を指定します。

bin/mattermost team add ExampleTeam user@example.test user

チャンネル作成

チームに参加しているユーザーが誰でも参加できる公開チャンネルを作る際は以下のようにコマンドを実行します。
この時チャンネル名は全て小文字にする必要がありますが、display nameは大文字やスペースを使用することができます。

bin/mattermost channel create --team ExampleTeam --name channel --display_name "Channel"

以下はchannel createで指定できるオプションです。
--privateを指定することでシークレットチャンネルを作成することができます。

--display_name string   Channel Display Name
--header string         Channel header
--name string           Channel Name
--private               Create a private channel.
--purpose string        Channel purpose
--team string           Team name or ID

ユーザーをチャンネルに追加

作成したチャンネルにユーザーを追加する場合は以下のようにコマンドを実行します。
シークレットチャンネルの場合も同様にチャンネル名を指定してユーザーを追加することができます。

bin/mattermost channel add ExampleTeam:channel user

シェルスクリプトで楽をする

ここまで Mattermost を利用するにあたってよく使うと思われるコマンドを紹介しましたが、これを手動でぽちぽちするのは大変なので、次はシェルスクリプトを使って楽に大量のアカウントを操作する方法を紹介します。

実際にトレーニングを行う際などは大量にユーザーを作成してチャンネルに追加したりする作業が必要だと思いますが、シェルスクリプトを使えば全て自動で行うことができます。
また、次に環境を用意する時もパラメータを変更するだけで可能なため、非常に楽に運用することができると思います。

ここでは例として以下の要件に沿ってチャンネルとユーザーを作成し、各ユーザーをチームに参加させて作成したチャンネルに追加するスクリプトを書きます。

項目 名前
チーム名 ExampleTeam
ユーザー名 user1 ~ user10
メール user1@example.test ~ user10@example.test
パスワード password1 ~ password10
参加チャンネル channel
#!/bin/bash

TeamName="ExampleTeam"
Channel="channel"
User="user"
Mail="example.test"
Password="password"

bin/mattermost channel create --team $TeamName --name $Channel --display_name "$Channel"

for i in `seq 1 10`
do
        bin/mattermost user create --email $User$i@$Mail --username $User$i --password $Password$i
        bin/mattermost team add $TeamName $User$i@$Mail $User$i
        bin/mattermost channel add $TeamName:$Channel $User$i
done

最後に

冒頭でも説明したように今回紹介したのコマンドはごく一部です。Mattermost CLI には他にもたくさんのコマンドが用意されているため興味がある方は是非公式リファレンスを参照してください。

そして最後にシェルスクリプトを紹介しましたが、Mattermost CLI のコマンドだけでなくシェルスクリプトでいろいろなことができます。シェルスクリプトについても興味があれば是非調べてみてください。