#0.はじめに
AWSも良いけどやはり自前のサーバを構築したい。最近話題になっているRaspberry Pi 4 8G等をAmazonで15,000円余りで購入した。OSは何にするか?Winsdows10(ARM)も動作するが発熱問題があるとか?LinuxServerでと思い検索したらCentOS 8が動作可能みたいだ、今回はCentOS 8での検証をします。
#1.OSイメージ取得する。
下記サイトよりダウンロードする。
https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4/
CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz
備考:Steamとした理由は下記サイト参照した。
CentOSからCentOS Streamへ
https://qiita.com/yamada-hakase/items/1629d511ab4199d253b4
#2.マイクロSDにOSイメージ書き込みをする。
今回は、Raspberyサイトより https://www.raspberrypi.org/
ツールをダウンロード、インストールして使用した。SDカード初期化、OSイメージ書き込みが出来た。
備考:マイクロSDは、『サンディスク microSD 128GB UHS-I Class10 読取り最大100MB/s 【Nintendo Switch メーカー動作確認済】 SanDisk Ultra SDSQUAR-128G-EPK エコパッケージ』を購入した。
#3.CentOS 8が起動した。(ユーザ:root、パスワード:centos)
$ uname -a
Linux raspi4 5.4.60-v8.1.el8 #1 SMP PREEMPT Sun Aug 23 02:58:38 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
$ free
total used free shared buff/cache available
Mem: 8003272 614636 1649640 78068 5738996 7227932
Swap: 499708 0 499708
備考:OS 64biでメモリ 8Gバイトで問題がないと思う。
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 2241560 1956648 245092 89% /
devtmpfs 3968356 0 3968356 0% /dev
tmpfs 4001636 0 4001636 0% /dev/shm
tmpfs 4001636 24960 3976676 1% /run
tmpfs 4001636 0 4001636 0% /sys/fs/cgroup
/dev/mmcblk0p1 292696 56664 236032 20% /boot
tmpfs 800324 0 800324 0% /run/user/1000
トラブル:2GBしか認識していな!ネットを調べてコマンドを実行した。
$ /usr/bin/rootfs-expand
再起動します。
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 122069752 1645876 120384056 2% /
devtmpfs 3968356 0 3968356 0% /dev
tmpfs 4001636 0 4001636 0% /dev/shm
tmpfs 4001636 16792 3984844 1% /run
tmpfs 4001636 0 4001636 0% /sys/fs/cgroup
/dev/mmcblk0p1 292696 56664 236032 20% /boot
tmpfs 800324 0 800324 0% /run/
120GB認識した!
#4.インストール後の諸設定は下記サイトを参照した。
https://www.server-world.info/query?os=CentOS_8&p=install
備考:以前より参照してたサイトです。
CentOS8を導入したので普通のサーバとして参照しました。
設定項目は、タイムゾーン設定、ユーザ作成、パスワード再設定、SSH、固定IP設定等などです。
#5. Docker、Docker-composeをインストールした。
###5.1 dockerインストール下記コマンドを実行して問題なかった。
$ curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
$ sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/docker-ce.repo
$ dnf --enablerepo=docker-ce-stable -y install docker-ce
$ systemctl enable --now docker
バージョンを確認した。
$ docker --version
Docker version 20.10.1, build 831ebea
###5.2 Docker-composeインストールした。(バイナリがない)
下記サイトを参照した。
Raspberry Pi用docker-composeの構築 (1.25.0以降)
https://qiita.com/tkyonezu/items/912fb7cfaab2f59276dd
$ git clone https://github.com/docker/compose.git
$ cd compose
$ git checkout 1.25.0 → git checkout 1.27.4に変更する(自信なし結果オーライ?)
# git checkout 1.27.4
Previous HEAD position was 4038169d Merge pull request #7028 from docker/bump-1.25.0
HEAD is now at 40524192 "Bump 1.27.4"
備考:https://github.com/docker/compose/blob/master/CHANGELOG.md
でバージョンを確認した。
ビルドを実行した。
$ ./script/build/linux
途中の結果、成功したらしい。
Successfully built e731e12ae43e
Successfully tagged docker/compose:tmp-glibc-linux-binary-40524192
バイナリーのバージョンを確認する。
$ cd dist
$ ./docker-compose-Linux-aarch64 --version
docker-compose version 1.25.0, build 4038169d →何故か1.25.0
バイナリをコピー実行権を与える。
$ sudo cp docker-compose-Linux-aarch64 /usr/local/bin/docker-compose
$ cd /usr/local/bin
$ sudo chown root:root docker-compose
$ sudo chmod 755 docker-compose
バージョンを確認した。
$ docker-compose --version
docker-compose version 1.27.4, build 40524192
#6. Docker-Composeを使い複数のWordPressをインストールする。
###6.1 動作設定用ファイル(docker-compose.yml)を作成する。
備考:MySqlが使えなかったのでMariaDBを使いました。
作業用のフォルダを作成する。
# mkdir ~/docker_wp 任意のフォルダに作成する
$ cd docker_wp
$ nano docker-compose.yml
version: '3.3'
services:
db:
image: mariadb:latest
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root-pass
wordpress1:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp1:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root-pass
WORDPRESS_DB_NAME: wp1-db
wordpress2:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp2:/var/www/html
ports:
- "8010:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root-pass
WORDPRESS_DB_NAME: wp2-db
volumes:
db_data: {}
備考:ユーザ名、パスワード、ホスト名、データーベース名、ポート番号等は任意です。
###6.2 実行する。
$ douker-compose up -d
mariadb、wordpressが起動しました。
# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
docker_wp_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
docker_wp_wordpress1_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp
docker_wp_wordpress2_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8010->80/tcp
データベースを確認をしました。
# docker exec -i -t docker_wp_db_1 /bin/bash
# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.5.8-MariaDB-1:10.5.8+maria~focal mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wp1-db |
| wp2-db |
+--------------------+
5 rows in set (0.001 sec)
###6.3 WordPressをインストールした。
ブラウザで、http://固定IP:8000/、http://固定IP:8010/を実行する。
備考:作業は、SSHを設定後、MackBookよりターミナルで実施しています。
#後書き
今回の検証では、Raspberry Pi4 8Gはスペック的に余裕みたいだ。今後に期待です!