プロジェクト

全般

プロフィール

Sympaのマイグレーション(移設)

OSを更新する場合などで移行を行う場合のケース

前提条件

基本的にトラブルを避けるため移設前後でのバージョン差異はないものとしたい。
そのため、バージョンアップを伴う場合は次のいずれかの手順とするのが理想。

  • あらかじめ移行前に移行先と同じバージョンに上げておき移行する
  • 移行前のバージョンで移行を行い、移行がおわってからバージョンアップする

なお、各種tt2テンプレートを弄ってある場合、オリジナルのtt2ファイルがバージョン
アップで変更されてしまい、元のtt2ファイルでは更新後の動作に支障が出る場合がある
ため、次のいずれかのような対応が必要となる場合がある。

  • カスタムしたtt2ファイルは(いったん)移行しない
  • 更新前後のtt2ファイルのdiffを取り、更新後の変更点をカスタム版にマージする(大変)

以上の点を踏まえてバージョンが揃っている前提で下記手順を実施します。

もし相当するバージョンが存在しない場合、極力旧設定ファイルから新しい設定ファイル
へ互換性のある設定を手作業で移すなどし、事前に検証することを勧めます。
(dbのアップグレードが対応していない場合は、その点も諦める必要があります)

移行中はサービスダウンするため、可能であればメーリングリストサーバの前段でpostfixの
transportとholdで配送経路選択と配送保留を実施出来るようにするため、一時的な保留用
のMTAを挟んでおくことが望ましいです。

移行するリソース

システム連携やカスタマイズを除くと、下記のようなリソースを最低限移行する必要があります。

  • /etc/sympa
    設定ファイル、tt2テンプレート等のデータ
  • /var/spool/sympa
    処理中やエラーなどのスプールデータ
  • /var/lib/sympa/list_data
    リスト設定データ
  • /var/lib/sympa/arc
    アーカイブを設定している場合のアーカイブ内容
  • /var/lib/sympa/bounce
    読者ごとの直近のバウンスデータ
  • 使用しているsympaデータベース
    ログインユーザや、各リストごとの読者情報

作業内容

  1. 事前に移行先に適宜設定したpostfixと、移行元と同一バージョンのsympaを構築しておくこととします
  2. 前段MTAでメールを保留します(できれば)
  3. DNSの切替を行います
  4. 双方のsympaを停止します
  5. 移行元サーバ側の「移行する(上書きされる)リソース」とDBを退避しておきます
    ディレクトリは「名前_old」などリネーム、DBはこの段階の物をダンプしておく等
  6. 前述の移行するリソースを移行元から移行先に転送します
  7. 移行してきたディレクトリを元の場所に配置します
  8. 移行してきたDBをリストアします
    移行先で検証時にある程度利用している場合、それに対して「差し替え」ではなく「追記・上書き」となるため、
    場合によってはDBはリストア前にdropしておくことをお勧めします。
  9. 「sympa.pl --upgrade」でDBの正常性を確認します
    多少のバージョン違いであればアップグレードしたり、不足するテーブルを追加してくれます
  10. 「sympa_newaliases.pl」でエイリアスファイルが更新出来ることを確認します
  11. sympaサービス、wwsympaサービスを起動します
  12. 保留したメールの流れる先を移行先サーバに切り替え、メールの保留解除を行います(できれば)

切り戻す場合

逆の手順で移行するリソースを再度移行元サーバに転送し差し替えます。
ログインユーザや読者等を変更している場合のみ、必要に応じてDBの書き戻しも行います。