ウェブサイト検索

Raspberry Piにテストサーバーをセットアップする


ラズベリーパイは学生がコンピュータについて学ぶための低コストなデバイスとして始まりましたが、ラズベリーパイは低コストのテストサーバーとしても機能します。ラズベリーパイにサーバーオペレーティングシステムをインストールすることで、自宅でテストサーバーを迅速にセットアップできます。

私は最近、Raspberry Pi 3B+ を再インストールして、新しいウェブプロジェクトのテストサーバーとして使用することに決めました。私の本番環境は Intel のラックサーバーで Red Hat Enterprise Linux を実行しているため、ハードウェアレベルでは Raspberry Pi とはあまり一致しません。しかし、アプリケーションレイヤーでは、Raspberry Pi の Linux は依然として「Linux」であり、Raspberry Pi の Apache は依然として「Apache」であり、Raspberry Pi の PHP 7 は依然として「PHP 7」です。Raspberry Pi をデスクトップ向けの Linux ディストリビューションではなくサーバーとして設定すれば、Raspberry Pi 上での作業は Intel 上の Red Hat Enterprise Linux にある本番環境に比較的簡単に移行できるでしょう。

Raspberry Pi用のRed Hat Enterprise Linuxはありませんが、Fedora Serverは私のニーズに十分近いです。Raspberry PiにFedora 33 ARM Serverをインストールしようとしましたが、Fedora 33のARMページに無線ネットワーキングはデフォルトでサポートされているという注意書きがあるにもかかわらず、箱から出してすぐに無線ネットワーキングが機能しませんでした。問題は、Fedora 33 ARM Serverが含まれていないようです。

wpa_supplicant

しかし、Fedora 33 ARM Minimalをインストールすることで、すべてを正常に動作させることができました。

Fedora ARMウェブサイトからFedora 33 ARM Minimalイメージをダウンロードしてください。ダウンロード場所はウィキに記載されています。具体的には、Raspberry Pi 3にFedora 33 Minimalをインストールするには、Raspberry Pi 3のためのaarch64サポートイメージからFedora-Minimal-33-1.3.aarch64.raw.xzをダウンロードする必要があります。

Fedora 33 Minimalイメージを取得したら、それをmicroSDカードにインストールして、後でRaspberry Piでブートできるようにします。Linuxワークステーションまたはサーバーで、microSDカードを接続し、次のコマンドを実行します:

arm-image-installer --image=Fedora-Minimal-33-1.3.aarch64.raw.xz --media=/dev/sdb --target=rpi3

そのコマンドはFedora 33 MinimalイメージをmicroSDカードに書き込みます。私のLinuxデスクトップPCには内蔵のmicroSDスロットがないため、USBのmicroSDカードリーダーを使用しました。これによりmicroSDカードは/dev/sdbとして認識されます。あなたのシステムによっては、別のメディアターゲットデバイスを使用する必要があるかもしれません。

Fedora 33 MinimalをmicroSDにインストールすることは、事実上、カードにプリインストールされたイメージをダンプすることになります。最初にRaspberry PiでmicroSDを起動したときに、すべての設定を行う必要があります。

Raspberry PiをHDMIディスプレイとUSBキーボードに接続し、microSDを挿入し、電源を入れます。最初の起動では、いくつかの初期設定作業を行うため時間がかかります。この間にFedoraは、タイムゾーン、ルートパスワード、ユーザーアカウントなどのローカル設定を求めてきます。

システムが稼働し始めると、rootユーザーとしてログインできました。このRaspberry Piに届く長さのネットワークケーブルがないため、無線ネットワークを設定する必要がありました。コマンドラインで、Network Managerのコマンドラインツールnmcliを実行して、利用可能な無線ネットワークを一覧表示します。

nmcli device wifi list

もしnmcliがワイヤレスネットワークを見つけたら、このnmcli「connect」コマンドを使って接続します。$SSIDをあなたのワイヤレスネットワーク名に置き換えてください:

# nmcli device wifi connect $SSID --ask

その後、Network Manager は自動的に /etc/NetworkManager/system-connections ディレクトリにあなたのためのエントリを作成し、システムはRaspberry Piを起動するたびにこのネットワークに接続します。

私はRaspberry Piを自宅のネットワークでサーバーとして運用しているので、Raspberry Piがネットワークに接続するたびに同じIPアドレスを取得する必要があります。家庭用ネットワークでは、無線ルーターを通じてこれを行うことができます。ほとんどのルーターはMACアドレスを認識し、予約されたIPアドレスを割り当てることができます。私の家庭用ルーターは10.0.0.100から始まるIPアドレスを配布するので、Raspberry Piにはその範囲以下の予約されたIPアドレスである10.0.0.11を割り当てました。

Linuxシステムを管理する最も簡単な方法はCockpitツールを使用することだと思います。Cockpitを使うと、ウェブブラウザを介してLinuxサーバーを簡単に操作でき、ログの表示、ストレージの管理、ユーザーアカウントの設定、サービスのインストールが可能です。Fedora 33 ARM MinimalはデフォルトでCockpitをインストールしませんが、dnfを使用してパッケージとして簡単にインストールできます。

# dnf -y install cockpit

Cockpitをインストールしたら、Cockpitサービスが実行中で、システムを再起動するたびに再起動するように設定する必要があります。Fedoraはsystemdを使用しているため、次の2つの「system control」コマンドを使ってサービスを開始し、再起動のたびに有効にする必要があります:

systemctl start cockpit

systemctl enable cockpit.socket

Fedoraのデフォルトのファイアウォールは、あなたのデバイスへの接続を防ぐので、Cockpitへの接続を受け入れるためにローカルファイアウォールでポートを開く必要があります。firewall-cmdコマンドラインツールを使用してCockpitサービスを追加できます:

firewall-cmd --add-service=cockpit --permanent

firewall-cmd --reload

これで、Raspberry Piをリモートで制御するために、ウェブブラウザでhttps://10.0.0.11:9090/にアクセスできるようになったはずです。

Cockpitを使えば、必要な他のシステムセットアップ作業を完了できます。このRaspberry Piをウェブサーバーとしてセットアップするために、Apache httpdウェブサーバーとPHP 7をインストールし、次にCockpitを使用して本番システムとできるだけ一致するようにすべてを設定しました。

高価なサーバーは必要ありません。Fedora 33 ARM Minimalのようなサーバーオペレーティングシステムを使えば、Raspberry Piで手軽に自宅に安価なテストサーバー環境を構築できます。そして、Cockpitを使用すれば、ブラウザからすべてを管理できます。

関連記事: