Mastodon インスタンスを KUSANAGI にコマンド一発で建てる（Docker 不使用、CentOS7.x@さくらVPS）

<img width="500px" alt="20170621_2349_KusanagiMastodon.png" src="https://qiita-image-store.s3.amazonaws.com/0/78776/a0330a0d-e23e-3129-62ae-10c5910d6e50.png">

# インスタンスをコマンド一発（ワンライナー）で簡単に建てたい
[先日のQiita記事][link-pre]に続き、「さくらのVPS」の「標準OSインストール」で選択できる「**KUSANAGI**（CentOS7 x86_64）」でも、マストドンのサーバー（インスタンス）を一発で建てるスクリプトを [Gist に公開][link-gist]しました。

インスタンス立ち上げ後も、KUSANAGI は従来通り使えるので別途 WordPress のプロビジョニング（LAMP 環境）も作成できます。（KUSANAGI は初期化済みとなるので、改めて初期化をしたい場合は注意ください。）

※ 2017/08/09追記：マストドンが v1.5.1 に大幅アップデートしました。アップデート方法およびメンテナンス情報をとりまとめ中ですが、取り急ぎ[v1.4.7 から v1.5.1 にアップデートできました](https://blog.keinos.com/20170809_2869)。

# 一発インストールのコマンド（KUSANAGI バージョン）

```
cd ~/ && curl https://gist.githubusercontent.com/KEINOS/044296632e363fad065ff9a17b01d143/raw > install_mastodon.sh && chmod 0755 install_mastodon.sh && ./install_mastodon.sh
```
「さくらのVPS」の「標準OSインストール」で「KUSANAGI（CentOS7 x86_64）」を選択・**インストールした直後**に `root`で `SSH` 接続して、上記コマンドを実行すると、Mastodon にアクセスできる状態まで 20 分弱程度でセットアップしてくれます。

##大まかな動作

`yum update` を行った後、`kusanagi` の初期化・LEMP 環境の構築（プロビジョニングの実行）・Let'sEncrypt の SSL 証明書の取得を実行してから、`kusanagi`ユーザーで`ruby`,`rails`などの依存プログラムを導入して、Mastodon のインストールを行います。さらに**詳しいインストールの流れは[実際の bash スクリプト][link-gist]をご覧いただくのがベスト**だと思います。

##注意点

上でも簡単に述べましたが、従来のインストールと一番違うのは **`mastodon` アカウントを作成せず`kusanagi`アカウントで Mastodon をインストールしている**</span>点です。

これは従来の導入方法だと `mastodon` アカウントで各種 `conf` ファイルを上書きしてしまうため、Mastodon は動きはするものの「kusanagi コマンド」でプロビジョニング（新規の WordPress 環境を設置）した際に表示されなかったり、「`yum update` 後に再起動すると `nginx` が起動しない」といった細かい不都合が発生しました。

そこで、色々試した結果（疲れたので）Web関連の挙動は`kusanagi`アカウントで行うように統一したところ一番安定した動作を得られたため、**このスクリプトでは管理用に`mastodon`アカウントは作成しない仕様**になっています。（基本的にユーザーを`mastodon`を`kusanagi`に置き換えればいいだけです）

そのため、コマンド・ラインで Mastodon のユーザーの認証を行いたい場合なども `kusanagi` ユーザーでの操作になります。また、操作も `kusanagi` のホームディレクトリ内にある `live` ディレクトリに移動してから実行してください。

また、`kusanagi` アカウントは `sudoers` グループに入れていないので **`kusanagi` アカウントで `sudo` は使えません**。都度都度 `su` で `root` など `sudoers` 権限を持ったアカウントに切り替えてください。

なお、[マストドンのセキュリティ](http://qiita.com/search?q=mastodon+%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3)の観点からも、まずは下記の設定をすぐに変更することをおすすめします。
1. `root` ユーザーと `kusanagi` ユーザーの `ssh` 接続禁止
2. `ssh` のパスワード認証によるログイン認証禁止
3. `ssh` の接続ポート番号の変更

###手動認証（コマンドで認証を通す）例
```
su - kusanagi
cd live
RAILS_ENV=production bundle exec rails mastodon:confirm_email USER_EMAIL=your@mail.com
```
###ユーザー"KEINOS"を管理者に昇格する例
```
su - kusanagi
cd live
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=KEINOS
```

###関連Qiita記事
「さくらのVPS」で KUSANAGI の入っていない VPS インスタンス（CentOS7 x86_64のイメージ）にマストドンのインスタンスをインストールしたい場合は、下記の[前回の記事][link-pre]をご覧ください。

<TABLE ALIGN=CENTER>
  <TR>
    <TD>
      <A HREF="http://qiita.com/KEINOS/items/2f29779836c2d2989854" TARGET="_blank"><strong>Mastodonインスタンスをコマンド一発で建てる（Docker 不使用、CentOS7.x@さくらVPS）</strong></a>
      <A HREF="http://b.hatena.ne.jp/entry/http://qiita.com/KEINOS/items/2f29779836c2d2989854" TARGET="_blank">
      <IMG BORDER="0" src="http://b.hatena.ne.jp/entry/image/http://qiita.com/KEINOS/items/2f29779836c2d2989854" BORDER="0" ALT="" /></A>
      <BR>
      分散型ミニブログ「マストドン」のサーバー（インスタンス）を `yum install mastodn` くらいに「もっと手軽に建てられればいいのになぁ」と思い、ほぼ全自動でマストドンをインストールしてくれる bash スクリプトを Gist に公開しました。
    </TD>
  </TR>
</TABLE>

[link-gist]:https://gist.github.com/KEINOS/044296632e363fad065ff9a17b01d143
[link-pre]:http://qiita.com/KEINOS/items/2f29779836c2d2989854