/etc/yum.repos.d/をコピーして公開鍵を登録するだけも良いのだが、ついでに今までのものを若干変更した。
EPELとSorceForgeをrpmで登録する。
# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
そして、旧サーバのサードパーティー用リポジトリthird.repoをコピーして整理して公開鍵を追加する。
[atrpms]
name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=http://packages.atrpms.net/RPM-GPG-KEY.atrpms
# rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms
旧マシンのバックアップファイルを一時的に展開する
# mkdir tower
# cd tower
# scp nor@tower:/var/backup/tgz/*.110103
# ls | xargs -n 1 tar zxvf
# cp etc/sysconfig/iptables-config /etc/sysconfig
# cp etc/sysconfig/iptables /etc/sysconfig
# service iptables restart
# yum groupinstall "Web Server"
# cp etc/httpd/conf/httpd.conf /etc/httpd/conf
これ以外にも、ssl.confなど/etc/httpd/conf.d/内で自分で変更したファイルがあればコピーする。
/var/wwwのデータを復旧する。
# service httpd start
# chkconfig --level 345 httpd on
# yum groupinstall "Windows File Server"
# cp etc/samba/* /etc/samba
# chkconfig --level 345 smb on
# service smb start
# yum install mysql
# yum install mysql-server
# vi /etc/my.cnf
以前のmy.cnfをコピーしてもよいのだろうが、以下のみ加えておく。
[mysqld]
default-character-set = utf8
[mysql]
default-character-set = utf8
そして、起動設定と起動。
# chkconfig --level 345 mysqld on
# service mysqld start
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
こんなメッセージが出るが、support-files/mysql.serverは/etc/mysqldのことなので、なにもしなくていい。
が、以下のメッセージには従う。
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h levin.rally.or.jp password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
# /usr/bin/mysql_secure_installation
パスワード入力以外は「Enter」でかまわない。
# yum -y install dovecot
# cp etc/dovecot.conf /etc
# service dovecot start
# chkconfig --level 345 dovecot on
標準のPostfixは、PostgreSQLを使うようになっているので、mySQLを使うためにソースからビルド。
# wget http://ftp.riken.jp/Linux/centos/5.5/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm
また、taGrayからsleep中に接続を切れるように、postfix-sleep.patchを、
K2-net small patchesからとってくる。
# rpm -ivh postfix-2.3.3-2.src.rpm
# cp postfix-sleep.patch /usr/src/redhat/SOURCES <-パッチのコピー。
# vi /usr/src/redhat/SPECS/postfix.spec <-specファイルの編集
%define MYSQL 1 <-MySQLを使うように指定
...
Patch11: postfix-sleep.patch <- # Patchesに以下の行を追加。
yum install pcre-devel mysql-devel <-必要なライブラリをインストール
# rpmbuild -ba --define 'dist .el5_2' /usr/src/redhat/SPECS/postfix.spec
# rpm -ivh /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.1.el5_2.i386.rpm
/etc/postfix/main.cfに以下を追加。
smtp_destination_recipient_limit = 1
/etc/postfix/master.cfでは、
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# mkdir Maildir <-既存ユーザーである、rootのMaildirを作成
# chmod 700 Maildir
# service sendmail stop
# service postfix start
# service saslauthd start
# chkconfig sendmail off
# chkconfig --level 345 postfix on
# chkconfig --level 345 saslauthd on
# alternatives --config mta <-/usr/sbin/sendmailが/usr/sbin/sendmail.postfixにリンクされる。
このmySQLを使う自前でビルドしたPostfixは、yumでアップデートして欲しくないので、/etc/yum.confに除外設定をしておく。
exclude=postfix*
/etc/postfix/master.cfの設定を以下のようにコメントアウト。
submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
/etc/postfix/main.cfに以下を追加。
smtp_destination_recipient_limit = 1
まず、
postgreyのインストール。
# yum install postgrey
# cp etc/init.d/postgrey /etc/init.d
taRgreyのサイトから使用しているpostgreyのバージョンに対応するパッチをダウンロード。
# pushd /usr/sbin
# patch -p0 < ~/targrey-0.31-postgrey-1.33.patch
/etc/yum.confでアップデート除外設定。
exclude=postfix* postgrey
以下の/etc/postfix内の設定ファイルを旧マシンからコピーする。
check_ns
check_sender_info
permit_client_nots25r
prepend_client
reject*
whitelist*
/etc/postfix/main.cfを旧マシンのものを参考にしながら修正。
(ついでに、
自作のreject_my_fromの設定も行う)
/etc/init.d/postgreyで起動オプションを変更。
OPTIONS="--unix=$SOCKET --inet=10023 --tarpit=125 --targrey --retry-count=2 --delay=3600"
# postfix reload <- Postfix再起動
松田氏のuser_prefsは
http://www.flcl.org/~yoh/user_prefsに移動している。
インストールは以前の記録参照。
ただし/etc/mailman/mm_cfg.pyは/usr/lib/mailman/Mailman/mm_cfg.pyへのリンクなので、/etcのバックアップからのコピーでは復旧しない。
さて、登録してあるメーリングリスト自体の移行だが、
/etc/mailman/aliases
/etc/mailman/aliases.db
/var/lib/mailman/lists
/var/lib/mailman/archives
の2つのファイルと、2つのディレクトリを(ownerをmailmanで)コピーするだけ。
インストールは、yumで。
# yum install bind caching-nameserver bind-chroot
設定ファイルは、バックアップを展開して、/var/named/chroot以下のetc、var/namedを入れ替える。
ついでに、今まで適当に追加していたマシンのIPアドレスなどもきちんと登録しておく。
/usr/local内などのデータの移行
自作プログラムや、それに必要なライブラリをインストール。
基本的に/usr/local内にインストールしてあるので、それをチェック。
それ以外は、以下のものなどを。
- i-forward /usr/local/bin
- jcode.pl /usr/lib/perl5/site_perl
- yum install perl-MIME-tools
- yum install perl-HTML-Tree
wnn6とtamago
Wnn6、
tamagoともに、前回のインストール記録と、ほぼ同じでインストール可能。
ただし、wnnのchmod usr/norはtarでパーミッションやオーナーが残っているので不要。
ユーザ移行
まず、旧マシンの/etc/passwd、/etc/groups、/etc/shadow、/etc/gshadowからシステムユーザを削除したファイルを用意して、それぞれを新マシンに追加する。
ルータで旧マシンの外部ポートをすべて閉じる。
大量の転送を避けるために、バックアップを/に展開しておく。
旧マシンにrootでsshできるように/etc/ssh/sshd_configを編集("PermitRootLogin yes")し、sshdを再起動、rsyncで/homeを更新する。
さらに/rootのデータも復旧する。
ホスト移行
旧マシンを停止して、新マシン名をtowerに変更。
Postfixの設定ファイルmain.cfでホスト名を変更する。
myhostname = mail.rally.or.jp
とりあえず、使用可能なサーバ機が完成。