このブログは、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 のコマンドだけでなくシェルスクリプトでいろいろなことができます。シェルスクリプトについても興味があれば是非調べてみてください。