ファイルサーバー更新(4)(終)ー CentOS7インストールと設定のリストア

前回でパーツを組み込み、ハード的には完成しましたが、もとどおりに使用するためにはOSのインストールと設定の復旧が必要です。

1.CentOS7のインストール

2012年にサーバーを構築して以来、ずっとCentOS6.2を使用していましたが、ハードウェアを一新したのでCentOS7の最新版を使用することにします。CentOS8にしなかったのはネットの情報量がCentOS7の方が多かったからです。うまくいかない時に頼りになるのはネットの情報なので..。

ダウンロードはhttps://www.centos.org/download/から行います。ISOイメージをUSBメモリに書き込むのですが、ここで一点注意が必要です。ISOイメージをUSBメモリに書き込むツールは世の中にたくさんありますがCentOS7のISOイメージを書き込むには特定のツールを使用する必要があります。CentOSの公式サイトでサポートされているのは以下のツールです。

Fedora LiveUSB Creator
Win32 Disk Imager
Rawrite32
dd for Windows

私は当初上記と異なるツールを使って書き込みましたが見事に失敗しました。これはCentOS7のISOイメージにWindowsツールの多くが認識できない特殊な形式のパーティションが存在するためです。

インストール作業自体は他のサイトに詳しい情報があるのでここでは割愛しますが、概ね以下の状態でインストールを行いました。

(1)ブート用ドライブだけにしておく
(2)GUIベースの管理ツールをインストール
(3)ファイルサーバー用のパッケージをインストール

さすがにUSBメモリからのインストールは早く、30分程度でインストールが終わりました。

2.RAIDの認識

インストール後の諸設定を終えたあと、いったんシャットダウンして全てのデータディスクをスロットにさして再起動します。

自分としてはここが一番緊張したのですが、驚いたことに何の操作をすることもなくRAIDを再認識しました。本来は以下のコマンドを発行します。

# mdadm –assemble

OS起動スクリプトに上記コマンドが含まれているものと思われます。何にせよ一番大事なデータが無事引き継がれたことが確認できました。

3.設定の復旧
作業的にはここが一番ボリュームがあります。事前にバックアップしていた各種設定ファイルを元に設定を戻していく作業です。今回は(1)ユーザー、グループ情報(2)samba設定を復旧する必要があるのでハードウェアを更新する前に以下のファイルのバックアップを取っておきます。

(1)ユーザー、グループ情報関連
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/homeディレクトリ

(2)samba設定関連
/etc/samba/ディレクトリの各ファイル
/var/lib/samba/private/passdb.tdb
/var/lib/samba/private/secrets.tdb
tdbファイルの場所は以下のコマンドでわかります。
# smbd -b|grep PRIVATE_DIR
PRIVATE_DIR: /var/lib/samba/private
3.1. ユーザー、グループ情報の復旧

(1)設定ファイルのバックアップをscp等でサーバーにコピーしておく(ここでは/tmpとします)

(1)rootユーザーでログイン、ターミナル(端末)を2画面起動する

(2)homeディレクトリのバックアップ(tarアーカイブ)をコピー
# cp /tmp/home.tar /home/
# tar xvf home.tar

(3)ユーザー情報の復旧(passwd)
# cp /etc/passwd /etc/passwd.ori
# vi /tmp/passwd  ーー元のサーバーのpasswdファイルを開く
# vipw -p  ーー新サーバーのpasswdファイルを開く
移行したいユーザーの行をコピペし、ファイルを閉じる

(4)ユーザー情報の復旧(shadow)
# cp /etc/shadow /etc/shadow.ori
# vi /tmp/shadow  ーー元のサーバーのshadowファイルを開く
# vipw -s  ーー新サーバーのshadowファイルを開く
移行したいユーザーの行をコピペし、ファイルを閉じる

(5)ユーザー情報の復旧(group)
# cp /etc/group /etc/group.ori
# vi /tmp/group  ーー元のサーバーのgroupファイルを開く
# vipw -g  ーー新サーバーのgroupファイルを開く
移行したいユーザーの行をコピペし、ファイルを閉じる

(6)ユーザー情報の復旧(gshadow)
# cp /etc/gshadow /etc/gshadow.ori
# vi /tmp/gshadow  ーー元のサーバーのgshadowファイルを開く
# vigr -s  ーー新サーバーのgshadowファイルを開く
移行したいユーザーの行をコピペし、ファイルを閉じる

ユーザー、グループ情報の復旧作業で気をつけなければならないのは、決して古いファイルで新サーバーのファイルを置き換えないということです。仮にこれをやってしまうとサーバーが起動しなくなります。

3.2. samba設定の復旧

(1)新サーバー上のファイルをバックアップ
# cp /etc/samba/lmhosts /etc/samba/lmhosts.ori
# cp /etc/samba/smb.conf /etc/samba/smb.conf.ori
# mv /var/lib/samba/private/passdb.tdb /var/lib/samba/private/passdb.tdb.ori
# mv /var/lib/samba/private/secrets.tdb /var/lib/samba/private/secrets.tdb.ori

(2)元のサーバーのファイルをコピー
# cp /tmp/lmhosts /etc/samba/
# cp /tmp/smb.conf /etc/samba/
# cp /tmp/smbusers /etc/samba/
# cp /tmp/passdb.tdb /var/lib/samba/private/
# cp /tmp/secrets.tdb /var/lib/samba/private/

(3)ユーザーが存在することを確認する
# pdbedit -L

(4)sambaサービスを有効にする
# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service

(5)ファイアウォール設定でsambaサービスのアクセスを許可する
GUIで可能です。(アプリケーション>諸ツール>ファイアウォール)

この時点でファイルサーバーとしてクライアントからログイン可能になります。
ただし、実際にアクセスするとエラーになるのでSElinuxの設定をします。

(6)SElinux設定を変更してsambaサービスによるアクセスを許可する
# setsebool -P samba_export_all_rw on  ーーアクセス許可
# getsebool -a |grep samba_export_all_rw  ーー設定の確認

SElinuxのbooleanの定義とその意味はなかなか分かりづらいので以下のリンクを参考にしました。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/managing_confined_services/sect-managing_confined_services-samba-booleans

4.終わりに
こうやって記述すると大変そうですが、調べながら実施しても設定復旧作業は3時間ぐらいで終わりました。とりあえず最新のハードウェアになったので向こう5年は戦えると信じています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする