シェルスクリプトマガジン

特別企画 本格的なホームサーバーを構築(Vol.79記載)

著者:麻生 二郎

小型コンピュータボードの最上位モデルである「Raspberry Pi 4 Model B」の2G/4G/8Gバイト版と、人気のLinuxディストリビューション「Ubuntu」のサーバー版を組み合わせて、本格的なサーバーを構築しましょう。本特集では、サーバーをインターネットに公開する方法を紹介します。

シェルスクリプトマガジン Vol.79は以下のリンク先でご購入できます。

図A3 ラズパイサーバーの初期設定(ubuntu_init1.sh)

#!/bin/sh

##日本のタイムゾーン設定
sudo timedatectl set-timezone Asia/Tokyo

##全ソフトウエア更新
sudo apt update
sudo apt -y upgrade
sudo apt -y autoremove
sudo apt clean

##ファームウエアアップデート
sudo apt -y install rpi-eeprom
sudo rpi-eeprom-update

##完了後の再起動
read -p "再起動しますか [y/N]:" YN
if [ " $YN" = " y" ] || [ " $YN" = " Y" ]; then
  sudo reboot
fi

図A4 ラズパイサーバーの初期設定(ubuntu_init2.sh)

#!/bin/sh

##固定IPアドレスとルーターのIPアドレス
IP_ADDRESS="192.168.10.100"
ROUTER_IP="192.168.10.1"

##旧設定バックアップ
mkdir -p ~/old_settings
sudo mv /etc/netplan/50-cloud-init.yaml ~/old_settings/.

##新ネットワーク設定作成
cat << EOF | sudo tee /etc/netplan/50-cloud-init.yaml > /dev/null
network:
  ethernets:
    eth0:
      dhcp4: false
      addresses: [ip_address/24]
      gateway4: router_ip
      nameservers:
        addresses: [8.8.8.8]
  version: 2
EOF
sudo sed -i -e "s%ip_address%$IP_ADDRESS%" /etc/netplan/50-cloud-init.yaml
sudo sed -i -e "s%router_ip%$ROUTER_ip%" /etc/netplan/50-cloud-init.yaml

##ネットワーク設定反映
sudo netplan apply