ラズパイ(Debian 10)にサーバー(Tomcat 9)入れて公開する手前まで

前置き

いずれ自分でサーバー立てたいと思ってたけど、直近ではそんなつもりなかった。 自社の人と会話する機会があって、ラズパイの魅力をたくさん教えてもらって衝動買い。 せっかくなので勉強がてら自分のサーバーを立ててみることにした。 (最後に記載するけど、物理的な障害がありサーバー公開するには至っていない)

買ったやつ

www.amazon.co.jp

ラズパイと周辺機器全部入り。OSもraspbianがSDカードにインストール済み。 チキンなので全部そろってすぐ起動できるやつ買った。初期設定関係はこの記事では省略。

まずは最新状態にしてバージョン確認

ラズパイにインストールされてるもろもろとかを最新状態にする。
セキュリティ的にも定期的に最新状態にする必要あるのだろうなあ(面倒)

# 最新のパッケージをインストール
$ sudo apt update
$ sudo apt upgrade

# OSのアップデート
$ sudo apt-get dist-upgrade

# ラズパイのファームウェアのアップデート
$ sudo rpi-update

# debianのバージョン確認
$ cat /etc/debian_version

raspbianとdebianの違いはよくわかってない。けどサーバーとして使う分には一緒っぽい。 debianのバージョンわかったら「debian 10 tomcat インストール」とかでググる

Tomcatをインストールする

自分の場合はバージョン10だったので、下記のような記事がヒットした。
記事を参考にしながら(というか記事そのまま)必要なツールをインストールしていく
Debian 10にApache Tomcat 9をインストールする方法

Tomcatインストールして設定完了したら、ブラウザに「localhost:8080」とかでTomcatのページ表示されるか確認。 他のPCから同一ネットワーク内のラズパイにアクセスするなら、「ラズパイのIPアドレス:8080」で表示できる。 ラズパイIPアドレスは下記コマンドで調べる。wifiの場合はwlan0のinetってとこ(192.168..とか)。

$ ifconfig

メモとしてlinuxでのusergroupのコマンド
(ユーザーの追加は-aをつけ忘れると追加ではなく置き換えになる。全部グループ消えるので注意!)

# ユーザーのgroupを確認 
$ groups username
# ユーザーの追加
$ sudo usermod -aG groups username

PostgreSQLのインストール

DBは使い慣れているPostgreSQLをインストール。
環境構築:Debian 10(buster) にPostgreSQL 11をインストールし、新規DBを作成する方法

上記記事を参考にPostgre接続用ユーザーを作成した場合、ユーザー名のDBは作成されていないので

$ psql -U 接続用ユーザー名

ってやったら失敗した。

$ psql -U 接続用ユーザー名 -d postgres

とかって作成済みのDB名を指定する必要がある。
(もしくは接続用ユーザー名と同じ名前のDBを作成する。よろしくないだろうけど)

warファイルをデプロイしてみる

アプリ作ってwarで固めたらTomcatにwarファイルを配置する。
tomcatユーザーでないと権限無いのでスイッチする必要ある。

# tomcatユーザーにスイッチ
$ su - tomcat

# warファイルを移動
$ mv appname.war /opt/tomcat/webapps/

少しすると勝手にwarを展開してくれてサービス開始する。 下記はTomcatコントロールする用のコマンド

# 起動
$ sudo systemctl start tomcat

# 停止
$ sudo systemctl stop tomcat

# リスタート
$ sudo systemctl restart tomcat

# ステータス確認
$ sudo systemctl status tomcat

URLを入れて動いてるか確認。
localhost:8080/appname

公開するためにセキュリティ面を整える

下記記事を参考にした。
raspberry piでお手軽自家サーバー webサーバー編 - Qiita

そしていざ公開!

(まだセキュリティダメかもしれないけど)とにかく公開したくて自宅のルーターいじってポート開放! しようとして、さきほどの記事見ながらなんちゃらやってたら、使ってるwifiルーターが公式でポート開放できないようにしてることが判明した。
SoftBank Air における機能制限のお知らせ | インターネット・固定電話 | ソフトバンク

つよつよを目指すためには、物理的な障害も解決しないといけないことを学んだ(完)