Bitbucketにプッシュしたらテストサーバー(本番サーバー)に自動でデプロイしたい

Gitを自動でデプロイするには、コマンドラインでゴニョゴニョするらいいけど、ちょっと敷居が高い。
テストサーバー(本番サーバー)がGitに対応していないとダメっぽい。
リモートリポジトリ(Bitbucket)から差分をFTPするとか簡単にデプロイできる方法を探しました。

で、見つけたのが、「bitbucket-sync」なるも。
仕組みは、

  • Bitbucketにプッシュ
  • Bitbucketのフックでサーバーにお知らせ
  • サーバーで受け取った情報を元にBitbucketから差分データを取得
  • サーバー内で指定Dir内にコピー

という感じらしい。

動作確認環境は、さくらサーバー(スタンダード)、SourceTree、Bitbucket。
WordpressのテーマやプラグインをGitで管理します。
さくらサーバーにはWordpressがインストール済みでテーマ、プラグインも設定済みです。

Gitとは?とかSourceTreeの使い方とかは、「サルでもわかるGit入門 〜バージョン管理を使いこなそう〜」を参照して下さい。

1)Bitbucketに登録してリポジトリを作り、SourceTreeから初回分をプッシュします。
管理するテーマだけのリポジトリを作って下さい。

2)「bitbucket-sync」をダウンロードして設定します。
解凍後、ディレクトリ名を変更。(bitbucketにしました)
config.sample.phpをconfig.phpにリネームしエディタで開いて

/** The ID of an user with read access to project files */
'apiUser' => 'Bitbucketのユーザー名',

/** The password of {apiUser} account */
'apiPassword' => 'Bitbucketのパスワード',
'requireAuthentication' => true,		//trueに変更
'deployAuthKey' => '',
'gatewayAuthKey' => 'ここにKeyを入れる(何でもOK)',

さくらサーバー内のテーマディレクトリを指定。

$DEPLOY = array(
    'Bitbucketのリポジトリ名' => '/home/ユーザー名/www/wp-content/themes/テーマ名/',
);

設定が出来たらさくらサーバーにアップロードします。
「/home/ユーザー名/www/」にWordpressがインストールされていれば、
「/home/ユーザー名/www/bitbucket/」になるようにアップロードします。パーミッション変更とかはありません。
「http://ドメイン名/bitbucket/gateway.php?test」を実行してエラーが無い事を確認。

3)Bitbucketの個々のリポジトリのメニューで「Settings」「フック」から「POST」を選択し「ホックを追加」。

URLに、「http://ドメイン名/bitbucket/gateway.php?key=Config.phpで設定したKeyの値」を入れます。

4)テーマソースの一部を変更し、SoureceTreeでコミット、プッシュします。
エラーがなければ、プッシュと同時ぐらいに、サーバー側のテーマも変更されると思います。


1つのWordpressでテーマとプラグインとか、複数管理する場合は、それぞれSourceTree、Bitbucketにリポジトリを作り、POSTのURLを設定します。
config.phpの「$DEPLOY」を変更。

$DEPLOY = array(
    'Bitbucketのリポジトリ名A' => '/home/ユーザー名/www/wp-content/themes/テーマ名/',
    'Bitbucketのリポジトリ名B' => '/home/ユーザー名/www/wp-content/plugins/プラグイン名A/',
    'Bitbucketのリポジトリ名C' => '/home/ユーザー名/www/wp-content/plugins/プラグイン名B/',
);

こんな感じにしてサーバーにアップロード。
個々のリポジトリでプッシュすると、それぞれ変更されます。


bitbucket-sync」には、他にも使い方があるらしいけど、英語だし、良くわからないので、使える部分だけ・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)