ステージングサーバーと公開サーバー間でコンテンツを同期する
Movable Type premium は Movable Type 8 (MT8) と Movable Type 7 (MT7) とで製品が分かれており
Movable Type 8 (MT8) のみに対応している機能は MTP8、
Movable Type 7 (MT7) のみに対応している機能は MTP7と記載されています。
SiteSync は rsync and SSHやFTP/FTPSを利用して、Movable Typeのインストールされたステージングサーバー(以下、転送元サーバー)と公開サーバー(以下、転送先サーバー)の間でコンテンツの同期を行う為のプラグインです。
SiteSyncのご利用前の初期設定は以下の通りです。
必須 |
説明 |
---|---|
◯ |
転送先サーバーの設定を行います。「転送先サーバーの設定」ページを参照 |
◯ |
転送元サーバーの設定を行います。「転送元サーバーの設定」ページを参照 |
任意 |
ユーザーのロールに同期を行う為の権限設定を行います。 |
任意 |
同期を行う際のSiteSync全体のログ出力及び作業領域の設定を、システムのSiteSync設定で行います。「システムからプラグインの設定をする」ページを参照 |
◯ |
同期を行う為の設定を、同期を行うサイト/子サイト毎に行います。「サイト/子サイトからプラグインの設定をする」ページを参照 |
SiteSyncで同期を行う為には、転送先サーバー及び転送元サーバーの設定が必要となります。転送先サーバーでは、転送元サーバーから、サイト/子サイトのプラグイン設定にあるプロトコルで指定されたプロトコルで接続できる様、デーモンの設定、及びユーザーの追加、鍵認証の登録が必要になります。
配信先S3(バケット)の準備及びアクセスキー、シークレットアクセスキーをAWS管理画面より設定してください。
SSHを利用して接続を行う場合は、転送元サーバーで、ssh及びrsyncコマンドが利用できるよう設定されている必要があります。
転送元サーバーで秘密鍵が必要になります。FTPSで Movable Type クラウドにアクセスし、/secret に秘密鍵を設置すると、/data/secret ディレクトリ内に同期されます。転送先サーバーに登録されている公開鍵とペアになるよう秘密鍵を設定してください。
また、SSHオプション 設定項目へ "-o StrictHostKeyChecking=no" を指定する必要がある場合があります。
FTP/FTPSを利用して接続を行う場合は、転送元サーバーで、FTP/FTPS接続及び転送が出来るように設定されている必要があります。
同期設定及び同期を行う場合、そのユーザーに設定されている[ロール]の[権限]に、[同期処理]内の[コンテンツの同期]が設定されている必要が有ります。権限が付与されていない場合には、同期設定、コンテンツの同期は行う事が出来ません。また、コンテンツを同期へのリンクも表示されません。
ユーザーの権限及びロールについて詳しくは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 and SSHまたはFTP/FTPSの場合 転送先のサーバーホスト名を指定してください。転送先パスおよびログインする際のユーザー名などの情報が同じ場合に限り、改行区切りで複数の転送先ホスト名を指定することが出来ます。 |
転送先のパス | ◯ |
プロトコルがRsync and SSHまたはFTP/FTPSの場合 転送先のパスを指定してください。 例:/var/www/vhosts/skyarc/htdo |
ユーザー名 | ◯ |
プロトコルがRsync and SSHまたはFTP/FTPSの場合 転送先サーバーに接続するためのユーザー名を指定してください。 例:apache |
秘密鍵の指定 | ◯ |
プロトコルがRsync and SSHの場合に表示されます。転送元サーバーに転送先サーバーに接続するための秘密鍵を設置し、パスを指定してください。 例:/home/skyarc/sample_r |
SSHオプション | - |
プロトコルがRsync and SSHの場合に表示されます。SSHコマンドに渡すオプションパラメータを指定してください。
|
パスワード | ◯ |
プロトコルがFTP/FTPSの場合に表示されます。転送先サーバーのFTP/FTPSパスワードを指定してください。 プロトコルがFTP/FTPSの場合 |
日本語ファイル名禁止 | - |
日本語ファイル名のアップロードを禁止し、同期対象から外すかどうかの指定をします。日本語ファイル名のアップロードを禁止し、同期対象から外す場合は、チェックボックスにチェックをいれて下さい。 |
アクセスキー | - |
プロトコルがAWSS3の場合 AWS S3にログインするためのアクセスキーを指定してください。 AWS S3についてはサポート対象外となります。 |
シークレットアクセスキー | - |
プロトコルがAWSS3の場合 AWS S3にログインするためのAWSシークレットアクセスキーを指定してください。 AWS S3についてはサポート対象外となります。 |
バケット名 | - |
プロトコルがAWSS3の場合 AWS S3バケット名を指定してください。 AWS S3についてはサポート対象外となります。 |
クライアントキャッシュ(秒) | - |
プロトコルがAWSS3の場合 キャッシュの動作を指定してください。原則、デフォルト値(86400秒)を利用してください。 AWS S3についてはサポート対象外となります。 |
リージョン | - |
プロトコルがAWSS3の場合 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の管理ファイルかどうかは関係ありません。尚、サイトの場合は、配下の子サイトを含むかどうかを選択する事が出来ます。
サイト/子サイトのプラグイン設定でプロトコル AWS S3 を選択してください。
[アクセスキー][シークレットアクセスキー] が入力されていない場合は、IAM Roleを利用するようになっています。
同期する際の条件は以下の通りです。
設定が完了する事で、コンテンツの同期を行う為の、同期タスクの作成が出来る様になります。同期タスクの作成画面には以下の手順で移動する事が出来ます。
右カラムは[同期設定]となります。ここには[サイト/子サイトからプラグインの設定をする]で行った設定内容の一部が表示されます。
左カラムは[同期タスクの設定]となります。コンテンツ同期を行うタスク設定として、[同期対象]、[実行方法]、[同期する日時]を設定し、同期タスクを登録します。右カラムで表示されている[同期設定]を、左カラムで行う[同期タスクの設定]の内容で、[同期タスク]を作成するという形になります。
大項目 | 中項目 | 内容 |
---|---|---|
同期設定 |
プロトコル |
[サイト/子サイトからプラグインの設定をする]で設定されている、同期設定が表示されます。 |
転送元のパス | ||
ホスト名 | ||
転送先のパス | ||
SSHユーザーID | ||
AWS Access Key ID | ||
同期タスクの設定 |
同期対象 サイト時のみ |
サイトの同期タスク設定時に表示されます。同期する対象を選択します。
|
実行方法 |
[同期タスク]を実行するトリガー(実行方法)を設定します。以下のトリガーから選択出来ます。
|
|
同期する日時 実行方法で日時を指定して同期するを選択時のみ |
[実行方法]で[日時を指定して同期する]を設定した場合に表示されます。同期する日時を入力します。 | |
全同期モード プロトコルに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 スクリプトをスケジュール設定しておく必要が有ります。
項目 | 内容 |
---|---|
同期対象 |
サイトの同期タスク設定時に表示されます。同期する対象を選択します。
|
定期同期開始日時 |
定期実行を行う開始年月日・時間の設定を入力し、同期間隔を選択します。
|
定期実行タスク一覧 |
|
メール通知機能が有効の場合、同期処理完了後には、同期処理が行われた事とその処理結果が、プラグインの設定項目の [メール通知]で指定したメールアドレスにメールで通知されます。指定されていない場合には、同期処理を行ったサイトの管理者にメールで通知されます。
スキップされた処理については、メール通知は行われません。
メール通知機能が有効の場合、同期処理完了後には、同期処理が行われた事とその処理結果が、プラグインの設定項目の [メール通知]で指定したメールアドレスにメールで通知されます。指定されていない場合には、同期処理を行ったサイトの管理者にメールで通知されます。
メール通知機能はサイト/子サイト単位で設定できます。通知先のメールアドレスはカンマ区切りで複数設定できます。
スキップされた処理については、メール通知は行われません。
メール通知のテンプレートは、システム > グローバルテンプレート内の [SiteSync からの通知] がメールテンプレートです。
メール通知のテンプレートサイト/子サイト毎に設定できます。
メール通知テンプレートはテンプレートモジュールで作成し、テンプレート名を [SiteSync Notification] としてください。子サイトにテンプレートがなければ親サイト、親サイトにテンプレートがない場合はシステムのテンプレートに沿ってメール通知をおこないます。
SiteSync - ウェブサイト/ブログの同期完了通知
【<$mt:BlogName$>】の<mt:if name="type_name" eq="MANUAL">手動同期<mt:elseif name="type_name" eq="SCHEDULE">スケジュール同期<mt:else>コマンドラインから同期</mt:if>が実行されました。
実行者: <$mt:var name="user_name"$>( <$mt:var name="user_id"$> )
指定日時: <$mt:var name="time_create"$>
開始時間: <$mt:var name="time_start_sync"$>
終了時間: <$mt:var name="time_end_sync"$>
内容:
<$mt:var name="message"$>
※詳細は同期ログまたはMovableTypeのログを参照してください。
テンプレートの一行目がメールの件名として通知されます。
メールが送信されない場合は環境変数をご確認ください。
https://www.movabletype.jp/documentation/appendices/config-directives/