ねじまきまきまき -Random Note-

やったこと忘れないための雑記

さくらVPSでIRC ProxyとWebクライアント立てた

■始まりは気まぐれ、だけどブルースクリーン

もう半年以上前だけど、デスクトップPC(Windows)を疑似サーバにしてたIRC ProxyなんかをVPS側に全部持って行った。
そうしたら、デスクトップPCが恒例のWindows Updateブルースクリーンだしたので、役割終わったとでも思ったのか…。
おかげでゲームができなくなったんだぞ……。

VPSさくらインターネットのさくらVPSにした

vps.sakura.ad.jp
プランとしてはIRC ProxyとWebClientさえ動けばいいので、一番安いプラン(512M 石狩ゾーン)で、OSはCentOS7を選択。

■使ってたのは、tiarraとkeitairc

tiarraもkeitaircもperlだし、keitaircに至っては無理やりWindowsで動かしていたぐらいだから、CentOSとかのLinuxで動かすのはむしろ簡単。

■OS作業

セットアップしたときのOS情報はこんな感じ。
アップデートコマンドは実行しているから、変わっているかも。

$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

作業ユーザはroot以外のユーザを作って、そっちのほうでポチポチやる。
当たり前だけどマウントポイントは最低限なので、適当にルート領域にディレクトリを作成していく。
とりあえずのディスク情報はこんな感じ。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         234M     0  234M    0% /dev
tmpfs            244M     0  244M    0% /dev/shm
tmpfs            244M   29M  215M   12% /run
tmpfs            244M     0  244M    0% /sys/fs/cgroup
/dev/vda4         21G  5.6G   14G   29% /
/dev/vda2        477M  226M  222M   51% /boot
tmpfs             49M     0   49M    0% /run/user/1000
■セットアップと確認

tiarraとkeitaircのセットアップは2つともマニュアルを読んで実施。
それぞれのconfigファイルはVPSへの移行にあたってポート番号とかちょっと見直し。
ひとまず起動してみて、ファイアウォールとかポートマッピングの設定がちゃんと狙い通り行けているかどうかを見てみる。
keitaircをPCブラウザで開いて画面が帰ってくればOK。
画面レイアウト崩れている気がするけど、PCからは使わないから気にしない。
 f:id:neji_shiki:20210125150012p:plain

自動起動設定

tiarraとkeitaircはOS起動時に動いてくれるようにしたいので、cronにそのことを書く。

@reboot /Local/xxxx/tiarra_run.bash 1>/dev/null 2>&1 &
@reboot /Local/xxxx/keitairc_run.bash 1>/dev/null 2>&1 &

見てもらうとわかる通り、tiarraとkeitairc自体はそれぞれ起動用のbashファイルを作って、その中から呼び出している。
というのもそれぞれdaemon化するには引数を使ったり、環境変数を切ったり起動タイミングをずらしたりといったことが必要なので、そこを調整するために、それぞれの起動シェルを用意している。
起動シェル自体をバックグラウンドプロセスにしているけど、シェル内でそれぞれのプロセスをバックグラウンドに投げているので、これは不要だったりもする。

ちなみにこの場合、bashはログインシェルとして動作させないとプロセスの常駐化に失敗するので、Shebangにオプションを指定してあげないといけない。

  • lオプションでログインシェルとしての動作となるので、必要な環境変数の読み込みとかやってくれる。
#!/bin/bash -l

この状態でOSリブートをしてみて、狙い通りにtiarraとkeitaircが起動してくれることまで確認して、とりあえず終わり。

■おまけ

ちなみに接続URLの問題があるので、DDNS通知用のシェルもcronに登録していて、これは数分毎に動作するようになっている。
めんどくさくなってサンプル通りに動かしているから、これは特筆することはなにもない。
しいて言えば、Windowsで動かしていたDDNS通知用のpythonスクリプトがそのままでは動かない感じになったから、もういいやって思ったぐらい。