Plesk 自動インストールサーバのミラーリング

Plesk 自動インストールサーバのローカルミラーを管理することにより、複数の Plesk サーバのインストール時または更新時に同じファイルを何度もダウンロードして時間とトラフィックを浪費するのを回避することができます。ローカルミラーは HTTP 経由で利用でき、インストール中またはアップグレード中に Plesk パッケージをダウンロードするためのソースとして指定することができます。

ローカルミラーリポジトリの前提条件

  1. ミラーリングに使用する仮想ホストでは、すべてのスクリプトハンドラ(php、pl、cgi、py、fcgi など)を無効化する必要があります。
  2. ミラーリングに使用する仮想ホストまたはディレクトリには、+FollowSymLinks オプションを設定する必要があります。
  3. 他のソースを指定している場合を除き、スクリプトを実行しているマシンおよび宛先マシンから下記のリンク先にアクセスできる必要があります。
    • rsync://rsync.autoinstall.plesk.com/autoinstall - Plesk for Linux
    • rsync://autoinstall-win.plesk.com/autoinstall - Plesk for Windows
  4. スクリプトを実行しているマシンで、以下の拡張モジュールのサポート付きで PHP をコンパイルする必要があります(http://www.php.net/manual/en/ssh2.installation.php を参照)。
    • ssh2_connect
    • simplexml
    • XML DOM
  5. Plesk for Windows と Plesk for Linux のミラーを同じフォルダに配置することはできません。ミラーは別々のパスに作成する必要があります。

ローカルミラーリポジトリを構成する

  1. Plesk Mirror Setup ツールをダウンロードし、展開します。

    # wget https://support.plesk.com/hc/en-us/article_attachments/115002857189/mirrorctl-3.0.1.zip

    # unzip mirrorctlv2.0.1.zip

    # cd mirrorctl

  2. 利用可能な製品バージョンを確認します。

    show-all-releases コマンドを使用して利用可能な製品を確認し、os-list コマンドを使用して特定の製品でサポートされる OS を確認します。

    # ./mirrorctl show-all-releases

    1-show_all_releases

    # ./mirrorctl os-list --release=PLESK_12_0_18

    2-os-list

  3. ミラーリングしたい製品バージョンを選択します。

    cfg --add および cfg --remove を使用して、ミラーリングする製品バージョンのリストを編集します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386

    # ./mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=./plesk_win_mirror

  4. ローカルミラーリポジトリの構成をファイルに保存します。

    cfg --export を使用して、作成された構成をファイルに保存します。

    # ./mirrorctl cfg --export --path=./

    構成は mirror.xml ファイル内の所定の場所に保存されます。

    <?xml version="1.0" encoding="UTF-8" ?>

    <xml>

    <release name="PLESK_12_0_18" version="12.0.18">

    <os name="cos5_i386"/>

    </release>

    </xml>

    保存された構成をファイルから読み込むには、cfg --import を使用します。

    # ./mirrorctl cfg --import --cfg-file=./mirror.xml

  5. ミラーリポジトリを作成します。

    まず、ミラー用のディレクトリを作成します。

    # mkdir /var/www/html/mirror/

    # mkdir /var/www/html/mirror_windows/

    次に、update コマンドを使用して、ミラーを公式リポジトリと同期します。

    # ./mirrorctl update --path=/var/www/html/mirror/

    # ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=./plesk_win_mirror

注:このリポジトリを使用してインストールできるのは、ミラーの構成に指定されている製品バージョンと OS のインストールのみです。他のすべてのバージョンは、autoinstaller ユーティリティでこのリポジトリから利用できません。

作成されたリポジトリで利用可能な製品バージョンのリストを確認します。

# ./mirrorctl show-all-releases --src-host=/var/www/html/mirror/

# ./mirrorctl show-all-releases --win --src-host=/var/www/html/mirror_windows/

3-check

これで、Plesk のインストールまたは更新の処理においてローカルミラーリポジトリを使用できるようになります。

ローカルミラーリポジトリを使用する

ミラーは、以下のいずれかの方法で使用できます。

  • ミラーウェブホストを解決およびセットアップする DNS を変更して、https://autoinstall.plesk.com(Plesk for Linux)または http://autoinstall-win.plesk.com/(Plesk for Windows)がミラーをポイントするようにする
  • 自動インストーラを起動するマシンの /root/.autoinstallerrc ファイルの SOURCE 変数に、ミラーの URL を指定する

    [root@container ~]# cat /root/.autoinstallerrc

    SOURCE=http://uri.of.local.mirror/here/

  • 自動インストーラを対話型モードで起動するときに、--source オプションにミラー URL を指定する

リモートミラーリポジトリを管理する

Plesk Mirror Setup ツールは、同じファイルシステム上にあるリポジトリとリモートサーバ上にあるリポジトリを管理できます。リモートソースミラーおよびリモート宛先ミラーを指定するには、--path および --src-host オプションを使用します。

リモート宛先ミラーを指定するには --path を使用します。

  1. 特定のユーザ、パスワード、ホストを使用する:

    --path=user:UserSecurePassword@mymirror.tld:344/var/www/html/

    --path=user:UserSecurePassword@192.168.100.100:22/var/www/html/

    --path=root:RootSecurePassword@localhost:/var/www/html/

  2. SSH キー認証を使用する(プライベートキーとパブリックキーの両方が必要):

    --path=192.168.100.100:/var/www/html/

    現在のユーザのデフォルト RSA ペア(id_rsa および id_rsa_pub)が存在しない場合、デフォルト DSA ペア(id_dsa および id_dsa.pub)が $HOME/.ssh/ フォルダから使用されます。

    --path=user@mymirror.tld:344/var/www/html/

  3. 特定の SSH キーを mirrorctl ユーティリティの追加オプションとして使用する:

    --path=root@mymirror.tld:344/var/www/html/ --private-key=~/.ssh/id_mirror --public-key=~/.ssh/id_mirror.pub

リモートソースミラーを指定するには --src-host を使用します。

  1. SSH プロトコル経由で rsync を使用する:

    --src-host=test@192.168.100.100:/var/www/html/test-mirror/

    --src-host=mytestmirror.tld:/var/www/html/test-mirror/

    • 上の例では、ユーザパスワードまたは SSH ポート(22)の使用が禁止されます。
    • --src-host オプションを使用する場合、ツールを起動するユーザは、--src-host オプションに指定されたホストにこのオプションに指定されたユーザで接続するために、SSH キー認証がセットアップされている必要があります。
    • --src-host オプションを --path オプションとともに使用する場合にも、--path オプションに指定されたユーザは、--path オプションに指定されたホストから --src-host オプションに指定されたホストに --src-host オプション経由で指定されたユーザで接続するために、SSH キー認証がセットアップされている必要があります。
  2. ソースホストで rsync デーモンを使用する:

    --src-host=rsync://mytestmirror.tld:873/testmirror

rsync 構成の例:

# head /etc/rsyncd.conf

[testmirror]

path = /var/www/html/test-mirror/

comment = Test repository

# cat /etc/xinetd.d/rsync

service rsync

{

# disable = yes

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

例 1:ローカルミラーリポジトリに対して定期的な更新をセットアップする

目的:選択された製品バージョンのミラーを最新状態に保つ。

  1. 必要な製品バージョンと OS を追加して、ミラーの構成を作成します。

    # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml

    # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=rhel5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml

    # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_11_5_30 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml

    # /home/user/mirrorctl/mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=/var/www/html/mirror/windows_myconfig.xml

  2. ミラーを自動更新する crontab を構成します。

    $ crontab -l

    # m h dom mon dow command

    59 23 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=/var/www/html/mirror/myconfig.xml > ./mirror-cron.log 2>&1

    59 22 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=/var/www/html/mirror/windows_myconfig.xml > ./mirror-cron-win.log 2>&1

例 2:新しい OS を追加する

目的:ミラーに特定の製品バージョン用の別の OS を追加する

  1. mirrorctl ユーティリティを使用して、前に作成したリポジトリの現在の構成をインポートします。

    # ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig

  2. 製品バージョンに新しい OS を追加します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig

  3. ミラーを同期します。

    # ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=myconfig

例 3:特定の OS/バージョンをダウンロードする

目的:公式リポジトリからミラーへ、特定の製品バージョン用の特定の OS をダウンロードする。ミラーリング済みのその他のバージョン/OS はダウンロードしない

  1. ダウンロードしたい OS/製品バージョンのみが含まれる構成ファイルを生成します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./temp-config

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64 --cfg-file=./temp-config

  2. push コマンドを使用して、指定された OS を既存のリポジトリにダウンロードします。

    # ./mirrorctl push --path=/var/www/html/mirror/ --cfg-file==./temp-config

例 4:新しい製品バージョンのテスト用にミラーを作成する

目的:新しい製品バージョン用にテストミラーを作成し、このバージョンをテストし、テスト済みのバージョンのみをメインリポジトリにアップロードする(自分でテストしていない最新の公式アップデートはアップロードしない)

  1. 新しい製品バージョンのすべての OS 用にテストミラーを作成します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=all --cfg-file=./test-config

    # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config

  2. 新しいバージョンをテストします。
  3. 製品バージョン全体をメインリポジトリへアップロードします。

    # ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=./test-config

警告:--src-host オプションを使用しないと、自分でテストしていない新しい製品バージョンが公式リポジトリからアップロードされます。

例 5:製品リリースを新しい OS についてテストするためのミラーを作成する

目的:最新のアップデートを含むミラーリング済みの製品バージョン用に、特定の OS のリストでテストミラーを作成し、これらの OS をテストしてから、テストした OS の一部をメインリポジトリにアップロードする

  1. 選択された製品バージョンで複数の OS が利用可能なテストミラーを作成します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./test-config

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64--cfg-file=./test-config

    # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config

  2. 上記で作成されたテストミラーから、利用可能な製品リリースと OS のリストを取得します。

    # ./mirrorctl show-all-releases --src-host=/var/www/html/test-mirror/

    # ./mirrorctl os-list --release=PLESK_12_0_18 --src-host=/var/www/html/test-mirror/

  3. メインミラーに追加したいリリースと OS のみが含まれる新しい構成ファイルをテストミラーから生成します。

    # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml

  4. 作成された構成ファイルで、テストリポジトリのリリース/OS が利用可能であるかチェックします。

    # ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml

  5. 選択されたリリースと OS をテストミラーからメインリポジトリへアップロードします。

    # ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=push.xml

警告:--src-host オプションを使用しないと、自分でテストしていない新しい製品バージョンが公式リポジトリからアップロードされます。

警告:--cfg-file オプションを指定しないと、デフォルト構成ファイル BUILD/config.xml(ツールが配置されたディレクトリに対して相対的)が使用されます。つまり、構成ファイルのバージョン/OS のみがメインリポジトリにアップロードされます。

警告:--cfg-file オプションの指定が正しくない場合は、push コマンドに対して指定された構成ファイルが使用されます。