Raspberry Pi 2 (centos)  初期設定編

2017/12/12

 

結構前から企んでいましたが、一時的なプロジェクト専用のグループウェアを建てたいと考えていました。 レンタルのグループウェアもありますが、AIPO という日本発のグループウェアが無料で使用できそうなので入れてみたいと思います。

とりあえず本編は Raspberry Pi 用の CentOS7 の初期設定を行います。

本ページ制作時では CentOS-Userland-7-armv7hl-Minimal-1511-RaspberryPi2 を使用しています。 OS の SDカードへのインストール手順は Raspbian と同じ要領なので割愛します。

ログイン

初めての場合 root でログインします。パスワードは centos です。

systemctl のまとめ

CentOS7 から service や chkconfig 等のコマンドが systemctl に変更されたのでまとめておく。

 service 名称 status    | systemctl status 名称
 service --status-all   | systemctl --type service
 service 名称 start     | systemctl start 名称
 service 名称 stop      | systemctl stop 名称
 service 名称 restart   | systemctl restart 名称
 service 名称 reload    | systemctl reload 名称
                        |
 kill -9 PID            | systemctl -s 9 名称
                        |
 chkconfig --add 名称   | systemctl daemon-reload
 chkconfig --list       | systemctl list-unit-files -t service
 chkconfig --list 名称  | systemctl is-enabled 名称
 chkconfig 名称 on      | systemctl enable 名称
 chkconfig 名称 off     | systemctl disable 名称

IPアドレスを固定する

設定ファイルを編集するのもありなのだが、CentOS7 ではコマンドで設定することができる。

 [root@rpi2 ~]# nmcli d ネットワーク接続状況の表示
 DEVICE  TYPE      STATE         CONNECTION
 eth0    ethernet  connected     eth0
 wlan0   wifi      disconnected  --
 lo      loopback  unmanaged     --

 [root@rpi2 ~]# nmcli d show eth0 ネットワークデバイスの状況

 [root@rpi2 ~]# nmcli c mod eth0 ipv4.method manual ipv4.addresses IPアドレス/24 ipv4.gateway ルーター ipv4.dns ルーター
 ※デバイス名、IPアドレス、ゲートウェイを設定

設定ファイルを編集したい場合は以下のファイルの様に編集する。

 [root@rpi2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 有線LANの場合

   TYPE="Ethernet"
   BOOTPROTO="static"
   NM_CONTROLLED="yes"
   DEFROUTE="yes"
   NAME="eth0"
   DEVICE="eth0"
   UUID="ハード固有のID" 既に記載されているものをコピーする
   IPADDR="192.168.10.202" 設定したいアドレス
   PREFIX="24"
   GATEWAY="192.168.10.3" ルーターのアドレス
   DNS1="192.168.10.3"
   ONBOOT="yes"

   IPV4_FAILURE_FATAL="no"
   IPV6INIT="yes"
   IPV6_AUTOCONF="yes"
   IPV6_DEFROUTE="yes"
   IPV6_FAILURE_FATAL="no"
   IPV6_PEERDNS="yes"
   IPV6_PEERROUTES="yes"

対話形式でネットワークを設定する方法

メニューより対話形式でネットワークを設定する方法が用意されています。

 [root@rpi2 ~]# nmtui

無線LAN を繋げる

無線LANを使用しない場合は必要ありません。

無線LAN アダプタを認識している前提で説明します。 無線LAN は電力の消費が大きいのでサーバー用途で使用する予定はありませんが、 緊急用に一応アダプターを付ければつながるようにしています。

[root@rpi2 ~]# nmcli d wifi 接続可能ネットワーク一覧

 [root@rpi2 ~]# nmcli d wifi connect SSID password パスキー

 [root@rpi2 ~]# nmcli d show wlan0 接続を確認します

SDカードの領域拡張

Raspbian と同じように SD カードの領域全体を使用できるようにします。

[root@rpi2 ~]# touch /.rootfs-repartition

 [root@rpi2 ~]# reboot

ローカルの環境でも良いのですが、以降は SSH による外部接続を行います。

yum update

apt-get update と同じ。 結構な時間がかかる。 最新版でコマンドの扱いが変わっているものがあるので update を先にやっておく。

 [root@rpi2 ~]# yum update

時刻の同期と地域の設定。

CentOS7 では NTP を使用せずに Chrony に変更されました。その他もろもろの設定を行います。

 [root@rpi2 ~]# yum install -y chrony

 [root@rpi2 ~]# systemctl stop ntpd.service 一応 ntpd を停止
 [root@rpi2 ~]# systemctl disable ntpd.service ntpd の自動起動を解除

 [root@rpi2 ~]# vi /etc/chrony.conf

   =該当箇所を修正= は修正・追記

   #server 0.rhel.pool.ntp.org iburst
   #server 1.rhel.pool.ntp.org iburst
   #server 2.rhel.pool.ntp.org iburst
   #server 3.rhel.pool.ntp.org iburst

   server ntp.nict.jp iburst
   server ntp1.jst.mfeed.ad.jp iburst
   server ntp2.jst.mfeed.ad.jp iburst
   server ntp3.jst.mfeed.ad.jp iburst

 [root@rpi2 ~]# systemctl restart chronyd.service chrony の再起動
 [root@rpi2 ~]# chronyc sources 動作状況の確認

 == 地域とキーボードの設定 ==

 [root@rpi2 ~]# localectl 現在のロケールを確認
 [root@rpi2 ~]# localectl set-locale LANG=ja_JP.utf8 ロケールを変更
 [root@rpi2 ~]# localectl set-keymap jp キーマップを変更

 [root@rpi2 ~]# timedatectl list-timezones タイムゾーン一覧を表示して確認
 [root@rpi2 ~]# timedatectl set-timezone Asia/Tokyo 東京に設定
 [root@rpi2 ~]# timedatectl set-time "2016-11-24 14:53:00" 現在の日時を設定
 [root@rpi2 ~]# timedatectl 状態を確認


FDclone のインストール

CentOS では FDclone のパッケージがサポートされていないので自分でビルドしてインストールする。
なお、ロケールやタイムゾーンの設定が行われていないとエラーになるので、前段の地域の設定は必ず行うこと。

前準備として必要となるパッケージ群をインストールします。

[root@rpi2 ~]# yum -y --skip-broken groupinstall "Base" "Development tools"
 上記でインストール済みかもしれないけど一応
 [root@rpi2 ~]# yum install -y wget
 [root@rpi2 ~]# yum install -y rpm-build
 [root@rpi2 ~]# yum install -y gcc
 [root@rpi2 ~]# yum install -y make
 [root@rpi2 ~]# yum install -y ncurses-devel これだけ入ってなかった

作業ディレクトリを作成し、ソースコードをダウンロードします。

 [root@rpi2 ~]# mkdir fd_src
 [root@rpi2 ~]# cd fd_src
 [root@rpi2 fd_src]# wget http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.01b.tar.gz

リビルドを行い、完了したらインストールします。 なお、FDclone の設定は ここ を参照してください。

もし /etc/fd2rc が無い場合は、 FD を起動させ shift + e の設定から保存→保存先 /etc/fd2rc で設定ファイルが作成されます。

 [root@rpi2 fd_src]# rpmbuild -tb FD-3.01b.tar.gz
 [root@rpi2 fd_src]# cd /root/rpmbuild/RPMS/armv7hl/
 [root@rpi2 armv7hl]# yum install -y FDclone-3.01b-1.armv7hl.rpm
 [root@rpi2 armv7hl]# cd
 [root@rpi2 ~]# 
 

FD を起動して不要になった以下のファイル・ディレクトリを削除

 [root@rpi2 ~]# fd

 fd_src
 rpmbuild


ftp のインストール

ftp サーバーをインストールしておきます。 なお、ユーザーの追加を行っていないので root でのアクセスとなります。 そのため、必要な時のみ ftp を起動させます。

標準で firewalld が動作しているので firewalld の設定を行うか、起動を停止させないと FTP でのアクセスはできません。

 [root@rpi2 ~]# yum install -y vsftpd

 [root@rpi2 ~]# vi /etc/vsftpd/vsftpd.conf 設定ファイルの変更

   =該当箇所を修正= 先頭の # はコメント削除 は修正・追記

   anonymous_enable=NO 匿名ログイン禁止
   #ascii_upload_enable=YES アスキーモードでの転送を許可
   #ascii_download_enable=YES

   =末尾に追記=

   use_localtime=YES ローカルタイムを使う


 root のアクセスを許可するため、次の2つのファイルを修正する。
 [root@rpi2 ~]# vi /etc/vsftpd/ftpusers
 [root@rpi2 ~]# vi /etc/vsftpd/user_list

   =該当箇所を修正= 先頭の # はコメント削除 は修正・追記

   #root 先頭に # を付けコメントアウト


 [root@rpi2 ~]# systemctl restart vsftpd.service 起動

 [root@rpi2 ~]# systemctl disable vsftpd.service 自動起動を解除

 [root@rpi2 ~]# systemctl stop vsftpd.service 停止

ファイヤーウォールの設定

CentOS7 では iptables ではなく firewalld に変更されました。

実は設定の際に誤って ssh を削除してしまい、ssh 接続が不可能になりました。 ディスプレイを接続しスタンドアロンでファイヤーウォールを実行停止させ、再度 ssh で接続しました。

firewalld が起動していないと設定コマンドを受け付けないので、firewalld を起動するのですが ssh が接続できなくなります。 この場合 firewalld の起動前に /etc/firewalld/zones/public.xml を編集してから、firewalld を起動します。

定義されていないファイルがある場合 /usr/lib/firewalld/services に xml ファイルを作成することができます。
また、--add-port で直接ポート番号を指定することもdできます。

 [root@rpi2 ~]# systemctl status firewalld 状態の確認

 [root@rpi2 ~]# systemctl start firewalld 開始

 [root@rpi2 ~]# systemctl stop firewalld 停止

 [root@rpi2 ~]# firewall-cmd --list-services --zone=public --permanent 設定状態の確認
 dhcpv6-client ssh

 [root@rpi2 ~]# firewall-cmd --add-service=mysql --zone=public --permanent 設定の追加(mysql)
 success

 [root@rpi2 ~]# firewall-cmd --remove-service=mysql --zone=public --permanent 設定の削除(mysql)
 success

 [root@rpi2 ~]# firewall-cmd --add-service=http --zone=public --permanent 設定の追加(http)
 [root@rpi2 ~]# firewall-cmd --add-service=https --zone=public --permanent 設定の追加(https)
 [root@rpi2 ~]# firewall-cmd --add-service=ftp --zone=public --permanent 設定の追加(ftp)
 [root@rpi2 ~]# firewall-cmd --add-port=8080/tcp --zone=public --permanent 設定の追加(port:8080)

 [root@rpi2 ~]# firewall-cmd --reload

 [root@rpi2 ~]# ls -lta /usr/lib/firewalld/services/ 設定リスト


バックアップのすすめ

ここから具体的にサーバーをインストールしてゆくので一度バックアップを取っておく。 バックアップの方法は Diskimager を使用し読み込み保存を行います。

 [root@rpi2 ~]# shutdown -h now