ステージングサーバーと公開サーバー間でコンテンツを同期する
SiteSync は、転送元(ステージング側)と 転送先(公開側)の間でファイルを同期するプラグインです。
Movable Typeが出力したファイルだけでなく、同じ公開領域にあるその他のファイルも同期対象に設定できます。
rsync/SSH、FTP/FTPS、AWS S3 同期方式が選択可能です。
同期の際は除外設定や文字列置換をする機能を備えています。
SiteSync は 2つの製品に分かれています。本文中の表記はそれぞれの製品を指します。
同期方式 は 3つに分かれています。本文中の表記はそれぞれのプロトコル設定を指します。
製品別の差異については機能比較を参照してください。
SiteSyncのご利用前の初期設定は以下の通りです。
|
必須 |
説明 |
|---|---|
| ◯ |
転送先サーバーの設定を行います。「転送先サーバーの設定」ページを参照 |
| ◯ |
転送元サーバーの設定を行います。「転送元サーバーの設定」ページを参照 |
| ◯ |
同期を行う為の設定を、同期を行うサイト/子サイト毎に行います。「サイト/子サイトからプラグインの設定をする」ページを参照 |
| 任意 |
ユーザーのロールに同期を行う為の権限設定を行います。 |
| 任意 |
同期を行う際のSiteSync全体のログ出力及び作業領域の設定を、システムのSiteSync設定で行います。「システムからプラグインの設定をする」ページを参照 |
SiteSync で同期するには、転送先(公開側)と転送元(ステージング側)の両方を準備します。システム管理者権限で操作を行なってください。
転送先(公開側)は、サイト/子サイトの設定で選んだ プロトコルで 転送元から接続を受けられる状態にしておきます。
配信先S3(バケット)の準備及びアクセスキー、シークレットアクセスキーをAWS管理画面より設定してください。
転送元(ステージング側)は、転送先(公開側)に接続・送信できるように、必要な設定を行います。
ここでの設定が正しく整っていないと、後続の「プラグイン設定」「同期タスク」が失敗し、原因切り分けが困難になります。
先に「転送先サーバーの設定」を完了し、書き込み権限・パス・ネットワーク到達性を確認しておいてください。
SSHを利用して接続を行う場合は、転送元サーバーで、ssh及びrsyncコマンドが利用できるよう設定されている必要があります。
転送元サーバーで秘密鍵が必要になります。FTPSで Movable Type クラウドにアクセスし、/secret に秘密鍵を設置すると、/data/secret ディレクトリ内に同期されます。転送先サーバーに登録されている公開鍵とペアになるよう秘密鍵を設定してください。
転送先サーバーの設定によっては、SSHオプションの設定項目に、対話プロンプトを回避する以下の設定が必要になる場合があります。
例:-o StrictHostKeyChecking=no
FTP/FTPSを利用して接続を行う場合は、転送元サーバーで、FTP/FTPS接続及び転送が出来るように設定されている必要があります。
[アクセスキー][シークレットアクセスキー] が入力されていない場合は、IAM Roleを利用するようになっています。
同期設定及び同期を行う場合、そのユーザーに設定されている[ロール]の[権限]に、[同期処理]内の[コンテンツの同期]が設定されている必要が有ります。権限が付与されていない場合には、同期設定、コンテンツの同期は行う事が出来ません。また、コンテンツを同期へのリンクも表示されません。
ユーザーの権限及びロールについて詳しくはMovable Typeのマニュアルをご覧下さい。
Movable Type 7 Manual
システム管理者、[権限]にサイトの管理者が付与されている場合、[同期処理]内の[コンテンツの同期]も設定された状態となります。
システムからのSiteSync設定では、作業領域とログの設定、メール通知設定を行う事が出来ます。
システムからのSiteSync設定では、以下の設定項目を設定することが出来ます。
| 項目 | 内容 |
|---|---|
| 作業領域 |
SiteSyncの全体の作業領域を指定します。初期値は未入力状態となり、この場合の作業領域は%TMPDIR%/SiteSyncD(/tmp/SiteSyncD/)となります。 |
| ログ出力レベル |
SiteSyncの出力するログのレベルを記述します。以下のレベルを設定出来ます。
|
| ログ世代数 |
SiteSyncのログの世代管理の設定を行う事が出来ます。 |
| ログ保存先 |
SiteSyncのログの管理場所を設定します。以下の形式で設定出来ます。
|
| メール通知を利用する MTP7 |
SiteSyncの同期処理実行時にメール通知する機能を利用するかしないかの設定を行う事が出来ます。使用する場合にはチェックボックスにチェックを入れ、使用しない場合にはチェックボックスのチェックを外します。 |
| メール通知 MTP7 |
SiteSyncの同期処理実行時にメール通知する送信先メールアドレスを指定出来ます。初期値は未入力状態となり、この場合には、同期処理を行ったサイトの管理者にメールで通知されます。 入力状態の場合は、入力されているメールアドレスのみメールが送信され、サイトの管理者にはメール通知は行われません。なお、メール通知は「メールを通知する」にチェックが入っている場合のみ行われます。 |
MTP7[メール通知を利用する]で、メール通知を利用しない設定にしている場合、全てのサイトでメール通知が行われなくなります。また、[メール通知]で設定している内容は無視されます。
MT8系ではマルチドメインの構成に対応するため、サイト(子サイト)のプラグイン設定に移行しました。
サイト/子サイトからのSiteSync設定では、サイト/子サイトでのそれぞれの同期設定を行う事が出来ます。
サイト/子サイトからのプラグイン設定では、以下の設定項目を設定することが出来ます。
| 項目 |
必須 |
内容 |
|---|---|---|
| 設定の読み込み MTP8 |
- |
他のサイトの設定を読み込むことができます。読み込む場合はサイト名を選択し[ 設定を読込 ] をクリックします。プロトコルによってホスト名、転送先のパスはサイトに合わせて変更してください。 |
| プロトコル | ◯ |
転送元サーバーから転送先サーバーに接続し、コンテンツの転送を行う際に利用するネットワークプロトコルを選択します。
|
| ホスト名 rsync/SSH FTP/FTPS |
◯ |
転送先のサーバーホスト名を指定してください。転送先パスおよびログインする際のユーザー名などの情報が同じ場合に限り、改行区切りで複数の転送先ホスト名を指定することが出来ます。
|
| 転送先のパス rsync/SSH FTP/FTPS |
◯ |
転送先のパスを指定してください。 例:/var/www/vhosts/movabletype-premium/htdocs
|
| ユーザー名 rsync/SSH FTP/FTPS |
◯ |
転送先サーバーに接続するためのユーザー名を指定してください。 例:apache
|
| 秘密鍵の指定 rsync/SSH |
◯ |
転送元サーバーに転送先サーバーに接続するための秘密鍵を設置し、パスを指定してください。 例:/home/movabletype-premium/sample_r
|
| SSHオプション rsync/SSH |
- |
SSHコマンドに渡すオプションパラメータを指定してください。
|
| パスワード FTP/FTPS |
◯ |
転送先サーバーのFTP/FTPSパスワードを指定してください。 |
| 日本語ファイル名禁止 | - |
日本語ファイル名のアップロードを禁止し、同期対象から外すかどうかの指定をします。日本語ファイル名のアップロードを禁止し、同期対象から外す場合は、チェックボックスにチェックをいれて下さい。 |
| アクセスキー AWS S3 |
- |
AWS S3にログインするためのアクセスキーを指定してください。 AWS S3についてはサポート対象外となります。 |
| シークレットアクセスキー AWS S3 |
- |
AWS S3にログインするためのAWSシークレットアクセスキーを指定してください。 AWS S3についてはサポート対象外となります。 |
| バケット名 AWS S3 |
- |
AWS S3バケット名を指定してください。 AWS S3についてはサポート対象外となります。 |
| クライアントキャッシュ(秒) AWS S3 |
- |
キャッシュの動作を指定してください。原則、デフォルト値(86400秒)を利用してください。 AWS S3についてはサポート対象外となります。 |
| リージョン AWS S3 |
- |
AWS S3リージョンを指定してください。原則、デフォルト値(ap-northeast-1)を利用してください。 AWS S3についてはサポート対象外となります。 |
| 文字列の置換 | - |
[転送するファイル]内の文字列置換のセットを指定することが出来ます。各行にコンマ区切りで置換元と置換先の文字列を指定してください。 例:cms.example.com,www.example-site.co
置換元、置換先となります。 |
| 置換対象の拡張子 | - |
[文字列の置換(オプション)]の対象とする拡張子を指定します。コンマ区切りで拡張子を複数指定することが出来ます。 例:html,php,css,js,xml
|
| 除外パス | - |
同期対象から除外したいディレクトリもしくはファイルのパスを指定します。1行に除外したいパスを指定します。ディレクトリを指定する場合は末尾に/を指定してください。尚、初期設定は.*となっており、.から始まるファイル、ディレクトリは除外される設定となります 例1:/exclude.html (match: /exlude.html)
|
| 除外拡張子 | - |
同期対象から除外したいファイルの拡張子を指定してください。コンマ区切りで拡張子を複数指定する事が出来ます。 例:css,js,jpg,gif
|
| 作業領域 | - |
同期処理に必要な作業用ディレクトリを指定します。 初期値:%TMPDIR%/SiteSyncD/%BLOG_ID%/(/tmp/SiteSyncD/%BLOG_ID%/)
|
| FTPモード FTP/FTPS |
- |
パッシブモードまたはアクティブモードを選択します。 |
| メール通知を利用する MTP8 |
- |
SiteSyncの同期処理実行時にメール通知する機能を利用するかしないかの設定を行う事が出来ます。使用する場合にはチェックボックスにチェックを入れ、使用しない場合にはチェックボックスのチェックを外します。 |
| メール通知 MTP8 |
- |
SiteSyncの同期処理実行時にメール通知する送信先メールアドレスを指定出来ます。初期値は未入力状態となり、この場合には、同期処理を行ったサイトの管理者にメールで通知されます。 入力状態の場合は、入力されているメールアドレスのみメールが送信され、サイトの管理者にはメール通知は行われません。なお、メール通知は「メールを通知する」にチェックが入っている場合のみ行われます。(カンマ区切りで複数アドレス可能です) |
| 日時指定投稿時に自動で同期タスクを作成する MTP8 |
- |
記事・ウェブページを日時指定にて作成した場合、自動的に同期タスクを作成します。使用する場合にはチェックボックスにチェックを入れ、使用しない場合にはチェックボックスのチェックを外します。MT7系では本機能は常時有効となっています。 コンテンツデータに対応しておりません。 |
同期の対象はサイト、子サイト単位になり、その配下のディレクトリ、ファイルのすべてが対象となります。Movable Typeの管理ファイルかどうかは関係ありません。尚、サイトの場合は、配下の子サイトを含むかどうかを選択する事が出来ます。
設定が完了する事で、コンテンツの同期を行う為の、同期タスクの作成が出来る様になります。同期タスクの作成画面には以下の手順で移動する事が出来ます。
右カラムは[同期設定]となります。ここには[サイト/子サイトからプラグインの設定をする]で行った設定内容の一部が表示されます。
左カラムは[同期タスクの設定]となります。コンテンツ同期を行うタスク設定として、[同期対象]、[実行方法]、[同期する日時]を設定し、同期タスクを登録します。右カラムで表示されている[同期設定]を、左カラムで行う[同期タスクの設定]の内容で、[同期タスク]を作成するという形になります。
| 大項目 | 中項目 | 内容 |
|---|---|---|
|
同期設定 |
プロトコル |
[サイト/子サイトからプラグインの設定をする]で設定されている、同期設定が表示されます。 |
| 転送元のパス | ||
| ホスト名 | ||
| 転送先のパス | ||
| SSHユーザーID | ||
| AWS Access Key IDAWS S3 | ||
|
同期タスクの設定 |
同期対象 サイト時のみ |
サイトの同期タスク設定時に表示されます。同期する対象を選択します。
|
| 実行方法 |
[同期タスク]を実行するトリガー(実行方法)を設定します。以下のトリガーから選択出来ます。
|
|
| 同期する日時 実行方法で日時を指定して同期するを選択時のみ |
[実行方法]で[日時を指定して同期する]を設定した場合に表示されます。同期する日時を入力します。 | |
| 全同期モード FTP/FTPS |
通常、前回の同期時に処理が成功し、キャッシュファイルが生成されていればその情報を利用して同期しますが、キャッシュファイルを利用せずに全ファイルを同期するかどうかを設定します。チェックボックスにチェックを入れる事で、全同期を実施します。 |
作成・登録した同期タスクは、同期タスクの管理画面で状態を確認する事が出来ます。同期タスクの管理画面には以下の手順で移動する事が出来ます。
同期タスクの管理画面と項目についてご説明します。
同期タスクの管理画面では、登録されている同期タスクが一覧表示されます。
また、同期タスクの状態を確認したりする事が出来ます。
| 項目 | 内容 |
|---|---|
|
ID |
同期タスクのIDが表示されます。 |
| ステータス |
登録されている同期タスクの現在の状態が表示されます。
なお、エラーおよび完了時にログが生成されている場合はステータスにリンクが貼られ、リンクをクリックすることでログをダウンロードすることが出来ます。 |
| 同期対象 |
登録されている同期タスクの同期対象が表示されます。
|
| 名前 | 同期タスクに登録されたサイト/子サイトが表示されます。 |
| 実行方法 |
登録されている同期タスクの実行方法が表示されます。
SiteSyncの設定を行っているサイト、子サイトで、日時指定を設定したウェブページまたは記事がある場合、自動的にその実行方法でタスクが登録されます。プラグイン設定画面で [予約投稿時に自動で同期タスクを作成する] にチェックが入っている場合のみ行われます。 |
| ユーザー | 同期タスクを登録したユーザー名が表示されます。 |
| 同期予約日時 | 同期タスクの日時が表示されます。 |
| ホスト名 | 転送先のホスト名が表示されます。 |
| 中断 | 未だ実行されていないタスクの場合には、[中断]ボタンが表示されます。クリックするとそのタスクを中断する事が出来ます。なお、一度中断したタスクは、再実行する事は出来ません。 |
同期処理完了後には、同期処理が行われた事とその処理結果が、メール通知されます。メール通知について詳しくは[メール通知]をご覧下さい。
ここでは、同期タスクの[実行方法]について、詳細と処理内容のご説明をします。
run-periodic-tasksで実行される同期タスクの中で、現在より古いタスクはすべて一括で処理し、同じ設定で既に実行されているものはスキップされます。
[同期タスクの作成]の設定で[実行方法]が[手動で同期する]の場合には、Movable Typeの定期実行タスクを処理する run-periodic-tasks スクリプトが同期タスク設定後最初に起動/実行するタイミングで同期されます。自動で処理が行われるようにするには、予め、crontab に run-periodic-tasks スクリプトをスケジュール設定しておく必要が有ります。
[同期タスクの作成]の設定で[実行方法]が[日時を指定して同期する]の場合には、Movable Typeの定期実行タスクを処理する run-periodic-tasks スクリプトが公開および非公開時刻後
最初に起動/実行するタイミングで同期されます。自動で処理が行われるようにするには、予め、crontab に run-periodic-tasks スクリプトをスケジュール設定しておく必要が有ります。(詳しくはMovable Type製品別マニュアルの設定方法をご確認下さい)
また、以下の条件を満たす場合には同期タスク[日時を指定して同期する]が自動で作成されます。
同期を定期的に自動実行することができます。自動実行する場合は crontab に run-periodic-tasks スクリプトをスケジュール設定しておく必要が有ります。
| 項目 | 内容 |
|---|---|
| 同期対象 |
サイトの同期タスク設定時に表示されます。同期する対象を選択します。
|
| 定期同期開始日時 |
定期実行を行う開始年月日・時間の設定を入力し、同期間隔を選択します。
|
| 定期実行タスク一覧 |
|
メール通知機能が有効の場合、同期処理完了後には、同期処理が行われた事とその処理結果がメールで送信されます。
送信先は、プラグインの設定項目の [メール通知]で指定したメールアドレスです。
宛先が指定されていない場合には、同期処理を行ったサイトの管理者に送信されます。処理がスキップされた場合は送信されません。
バージョンの差分として、MTP8は、メール通知機能はサイト/子サイト単位で設定でき、通知先のメールアドレスはカンマ区切りで複数設定できます。 MTP7は通知先の複数指定は対象外です。
メール通知のテンプレートは、システム > グローバルテンプレート内の [SiteSync からの通知] がメールテンプレートです。
メール通知のテンプレートサイト/子サイト毎に設定できます。
メール通知テンプレートはテンプレートモジュールで作成し、テンプレート名を [SiteSync Notification] としてください。子サイトにテンプレートがなければ親サイト、親サイトにテンプレートがない場合はシステムのテンプレートに沿ってメール通知をおこないます。
テンプレートの一行目がメールの件名として通知されます。
メールが送信されない場合は環境変数をご確認ください。
https://www.movabletype.jp/documentation/appendices/config-directives/| 機能 | MTP8 | MTP8 クラウド | MTP7 | |
|---|---|---|---|---|
| rsync/SSH配信 | ● | ● (8.01+) |
● | |
| FTP/FTPS配信 | ● | ● | ● | |
| AWS S3配信 | ● | ● (8.04+) |
△ (注1) |
|
| AWS S3:IAMロール同期 | ● (8.01+) |
- | - | |
| 同期範囲の制御:サイトのみ/配下含む | ● | ● | ● | |
| 同期範囲の制御:選択ファイル同期(rsync) | ● (注2) |
● (8.01+・注2) |
- | |
| 配信除外(パス/拡張子) | ● | ● | ● | |
| 文字列置換(拡張子限定) | ● | ● | ● | |
| 複数ホスト宛て一括配信 | ● | ● | ● | |
| 通知メール:複数宛先 | ● (8.01+) |
● | - | |
| 通知メール:テンプレ編集 | ● (8.01+) |
● | - | |
| 作業領域/ログ世代管理 | ● | ● | ● | |
| 定期同期(UI) | ● (8.01+) |
● | - |
注1:AWS S3 はアクセスキー/シークレットキー運用で利用可。IAMロール同期は MTP8のみ対応。
注2:rsync/SSH 利用時のみ。FTP/FTPS、 AWS S3 では非対応。