作業ログ

今日から素直で可愛げのある駆け出しのインフラエンジニアになる。
なので、sshログイン後きちんとscreenでセッションを保存してから作業を始める。

https://qiita.com/hnishi/items/3190f2901f88e2594a5f

 $ screen

まず前回やった作業の記憶を呼び覚ますために
ユーザーを切り替えてhistory見つつ何をするか思い出す。

$ sudo su -
$ sudo su mastodon
$ cd /home/mastodon/live/

アセットコンパイルからだった。

$ RAILS_ENV=production bundle exec rails assets:precompile
 yarn install v1.21.1
 [1/6] Validating package.json…
 [2/6] Resolving packages…
 [3/6] Fetching packages…

CPUが張り付きました。

メモリ使用量を見ようにも
$ free コマンドが打てない。

無料枠で何とかしたいので
t2.microで出来るだけやってみる😢

OSSで詰んだらソースを読むタイムだよ。
ファイルやディレクトリ総当りをしながら
それっぽいものを探す作業です。jsに発狂してきたら水を飲んで落ち着こう。

https://github.com/tootsuite/mastodon/blob/master/config/webpack/configuration.js

↑最後の方にoutputという単語を見つけた。
逆算してpublic_output_path => webpacker.ymlの行方を追います。
public配下のpacksっぽいことが判明した。

打開策としてDocker内の
/opt/mastodon/public/packs
をボリュームマウントしてホストに移動させて
そのまま圧縮してEC2に送る作戦でいきます。

ローカルで作業
イメージをDockerHubで見つけてきたのでpull

$ docker pull tootsuite/mastodon:v2.9.3
$ docker images
REPOSITORY            TAG      IMAGE ID       CREATED            SIZE
tootsuite/mastodon    v2.9.3   ca1472193a01   6 months ago     1.47GB

起動させつつボリュームをマウントしてホストと繋げる。

$ docker run -v /tmp:/tmp -it tootsuite/mastodon:v2.9.3 sh
$ pwd
 /opt/mastodon
$ cd public

ディレクトリをホストマシンのtmp以下にcp

$ cp packs /tmp/ -R

tmpに移動して確認

$ cd /tmp
$ ls
packs

tarコマンドで圧縮する

$ tar -zcvf packs.tar.gz packs
$ ls
packs                packs.tar.gz

scpで送る

$ scp -i ~/.ssh/**.pem packs.tar.gz ******@**.168.**.**:~/

サーバーに移動 (EC2)

$ screen

解凍する

$ tar -xzvf packs.tar.gz

public配下に移動

$ sudo mv packs /home/mastodon/live/public/

権限とか適当に整える

$ cd /home/mastodon/live/public/
$ chown -R mastodon:mastodon packs
$ service mastodon-web restart

_人人人人人人人人人人_
> 502 Bad Gateway <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄

なんでやねん

ログの確認

$ journalctl -f
(略)
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
(略)

静的ファイルの件は解決したけれど、PostgreSQLが何かダメっぽい。一難去ってまた一難…

/home/mastodon/live$ vim .env.production
$ service mastodon-web restart
$ service mastodon-web status
● mastodon-web.service - mastodon-web
  Loaded: loaded (/etc/systemd/system/mastodon-web.service; disabled; vendor preset: enabled)
  Active: active (running) since Sun 2020-02-23 11:58:59 UTC; 4s ago

空腹で視界が霞んできたので、今日はここまで。
インスタンスは作業が終わったら落としておく。