自分用メモ的なもの

Bitbucketからさくらのレンタルサーバ(スタンダードプラン)へ自動デプロイ

Pocket

Git管理しているCMSをさくらのレンタルサーバ スタンダードに自動デプロイしたときの流れを自分用にまとめてみました。

調べるといろいろ出てくるのですが、.git/を公開ディレクトリに置かなくていい方法をとりました。

基本はKatzさんのこの記事菱川さんのこのスライドを参考にさせていただいております。
いろいろみながらやっていたら結果ごちゃ混ぜになりました;

問題などありましたらご指摘いただけると幸いです。

今回使用したCMSはconcrete5 5.6系です。が関係ないので触れてません;;

サーバー条件

  • Gitが使える
  • PHP:exec()が使える
  • SSHでログインできる

確認環境

  • Bitbucketの非公開リポジトリ
  • SourceTreeを使用(記事には登場してません)
  • さくらのレンタルサーバ スタンダード

手順

今回は、既にサーバーへSSHでログインできるように設定済とします。

  1. Gitリポジトリを作成
  2. 公開鍵の設定
  3. サーバーへGitのインストール
  4. Bitbucketからリポジトリをクローン
  5. 公開ディレクトリへチェックアウト
  6. デプロイを自動化

1.Gitリポジトリを作成

ローカルにリポジトリを作成します。

.gitignore ファイルはKatzさんの記事のをほぼ使わせていただきました。

Bitbucketへプッシュします。

2.公開鍵の設定

サーバーへSSHで接続します。

.sshディレクトリが作成されていない場合は作ります。

.sshディレクトリに移動して公開鍵と秘密鍵を生成。

デフォルトのままで、改行3回押しました。

id_rsa.pubの中身をコピーして、

Bitbucketのsshキー設定に登録します。
リポジトリのデプロイ鍵のところで大丈夫だと思います;;

3.サーバーへGitのインストール

ソースコードをダウンロードするためのディレクトリを作成し、
ここから最新版をダウンロードしました。
こっちからのほうがよかったかもです;;

解凍し、インストール先を設定してインストールしました。

バージョンを確認し、返ってきたらインストール完了です。

パスが通っていない場合は~/.cshrc内のset pathの()内に追加すればよいようです。

4.Bitbucketからリポジトリをクローン

リポジトリを設置する場所へ移動します。
自分は、~/git/にrepoというディレクトリを作ってそこに設置することにしました。

Web公開領域でないところがポイントです。

リポジトリのクローンを押してコマンドをコピーして–mirrorオプションをつけて実行します。

gitclone

5.公開ディレクトリへチェックアウト

さくらに置き換えるとこんなかんじになります。

これで、ローカルリポジトリ→Bitbucketのリポジトリ→サーバのリポジトリ→公開ディレクトリ
という流れで出来ました。

6.デプロイを自動化

bitbucketのフックとphpを使って自動化します。

参考にさせていただいたお二人のスクリプトを混ぜてしまいました……

~/www/deploy/にdeploy.phpとして保存しました。

【】部分は適宜変更します。

Bitbucketにフックの設定をします。

リポジトリの設定からフックのページにいき、「POST」を選んで追加します。

URLは、先ほどのdeploy.phpにkeyを付け足して設定します。

http://ドメイン/deploy/deploy.php?key=【自分で設定したパスワード】

Basic認証とhttps通信(対応している場合)にした方が安心です。

https://【Basic認証ID】:【Basic認証パスワード】@【ドメイン】/deploy/deploy.php?key=【自分で設定したパスワード】

こんな感じ。

これで設定は以上です。

Bitbucketにプッシュすると自動で公開サーバーへ反映されているはずです。

参考

Pocket