ニフティクラウドC4SAが正式リリースとなりました。
2012年9月末までキャンバスの作成が無料のようです。この機会に試そうと思い、まずは基本的なところとしてgitとの連携を試してみました。
git連携ができるそうなので、githubではなく無料でプライベートリポジトリが持てるBitbucketと連携させてみようと思います。
なお、今回はSourcetreeというソフトを使ってgitが苦手な人でも試せるように配慮しましたので、MacOSX向けとなってます。
流れ
- Bitbucketでリポジトリ作成
- Sourcetreeでローカル側を作成
- index.htmlを作ってコミット&プッシュ
- ニフティクラウドC4SAのSSHキーをBitbucketに登録
- ファイルキャンバスのgit登録にURLを設定
- Nginxのconfを調整し、index.htmlへアクセスできるようにする
- サーバのリロード
詳細
Bitbucketでのリポジトリ作成
事前にBitbacketのアカウントを作成し、ログインしておいてください。
リポジトリを上部のメニュー「Repositories」から「Create repository」を行う。入力は画面にしたがって行ってください。
リポジトリが完成すると、以下のようが画面になると思います。
ニフティクラウドC4SAからBitbucketへのアクセスはSSHになるので、「Clone this repository」のSSHをクリックする。
そうすると、コマンド例が図のようになるのでgit clone以下をコピーしておく。(この部分がニフティクラウドC4SAの「リポジトリURL」になる)
Sourcetreeでローカル側を作成
Bitbucketの嬉しいところが、Sourcetreeというアプリを利用できるところ。
このアプリは無料で使えるSVNとGitのクライアントなので、別のサービスなどでリポジトリを持っていたり、独自に運営している方も使えるはず。お勧めです。
Sourcetreeをインストールしたら、Bitbucketのアカウントを設定しておく。
次に、画面左上の「Add repository」を押し、設定画面になったら地球マークのボタンをクリック。そうすると、以下のようなリポジトリ選択画面になるので、今回の対象を選ぶ。
保存先のパスについてはお好きなところへ。
index.htmlを作成しコミット&プッシュ
前の手順で作ったパスにてindex.htmlを作成し適当はHTMLを書き込む。
Sourcetreeに戻り、リポジトリの名前をダブルクリックすると以下のようになっている。(以下は既存ファイルを更新した結果なので、多少違うと思います)
「作業ツリーのファイル」に追加されたファイルがあるので、クリックすると右側に変更内容が表示される。問題なければ、「ファイルをステージへ移動」をクリックする。(これで「ファイルがindexにステージしたファイル」という名前のペインに移動する)
最後に、画面上部のコミットを押す。
このとき、「コミットを直ちにプッシュする」にチェックを入れておくと、一気にBitbucketへのプッシュも行われる。
ニフティクラウドC4SAのSSHキーをBitbucketに登録
受け取り側のニフティクラウドC4SAの準備を行う。今回はRubyのキャンバスを使っているが、ここではNginxしか使わないのでたぶんどのキャンバスでも問題ないはず。
キャンバスの作成を行ったら「ファイル」と書かれたキャンバスを開き、右上のボタンにある「git登録」を押す。
リポジトリ登録画面がでるので、最初の手順でコピーしておいたURLを登録する。さらに、何というディレクトリに保存して欲しいかをディレクトリ名に入力する。(ファイルの「home」以下に、この名前でディレクトリが作成され、リポジトリから取得されたファイルが保存されることになる。)
次に、ダイアログにある「SSH Key表示切替はこちら」をクリックする。そうすると公開キーが表示されるのでコピーする。
Bitbucketに戻り、自分のユーザー名からプルダウンで表示される「Account」というメニューをクリックする。
SSH Keyに先ほどコピーした文字列をペーストして保存する。
C4SAの画面に戻り「実行する」をクリックすると、pullしてくれる。
注意
ニフティクラウドのファイルキャンバスにあるSSH Key表示は、キャンバスの作成直後はnoneになっていて、しばらく待つと生成されるようです。
Nginxのconfを書き換える
Nginxのキャンバスを表示し、confを書き換えます。
今回は、あくまでindex.htmlが表示されれば良いとします。
まずrootの位置をpublicから、git登録したディレクトリにします。
# root ${canvas_home}/data/${disk_id}/project/public;
root ${canvas_home}/data/${disk_id}/bitbucket;
次に、Rubyの場合はUnicornに処理が飛んでしまうので、Proxyとしての処理させないようにしてしまいます。
location / {
# try_files $uri @rack_backend;
}
locationの中をコメントアウトすると静的なファイルを探してくれます。
最後に、デーモン管理キャンバスでNginxをリスタートしてください。