前口上
別記事 で Windows への Deis Workflow CLI のインストールからアカウント作成までを説明しましたが,いざ deis create
コマンドを用いてアプリケーションを作ろうとすると,例外が発生してしまいます。
これは,アプリケーションの作成時に deis.exe
を git.exe remote
を実行しようとしているためです。
MsysGit など用いて git.exe
をインストールすれば済む話ですが,よりお手軽な方法として,Atlassian SourceTree を用いる方法があります。
SourceTree がどんなソフトでどのようにインストールするのかといった細かいことは割愛します。ググると山のように出てきます。
筋書き
hello-deis という Web アプリケーションのデプロイを想定します。
SourceTree のインストール
難しいことは特に無いです。悩んだらググれば答えが出ます。
Git リポジトリの作成
これも難しいことはないです。 c:\Users\monaka\Documents\hello-deis という Git リポジトリを新規に作りました。誰かが先に作業しているようであれば Git リポジトリをクローンすることになります。
次に,SourceTreeのウインドウ右上にある「端末」ボタンをクリックします。
MinGW bash 環境が立ち上がります。
git.exe へのパスは通っており,カレントディレクトリは hello-deis リポジトリのトップディレクトリにあります。完璧です。
そのウインドウの中で,deis create hello-deis
を実行します。正常なら 2〜3 秒以内に完了します。
(必須ではありませんが,念のため) git remote -v
を実行してみると,Deis に push するための設定が追加になっていることが判ります。
なお,初回は必ず,Workflow サーバ側のネットワーク設計次第では時々「サーバの鍵を受け入れる?」という旨のダイアログが出てきます。Yes
を押して登録してください。
SSH Key の生成とインポート
git remote -v
の出力から,勘の良い方は気づいたかもしれませんが,Deis へ push する際には,事前に公開鍵の登録が必要です。公開鍵(および秘密鍵の生成も SourceTree で行えます。
具体的な方法はググってください。
生成が終わったら,そのウインドウにある「公開鍵の保存」1をクリックして保存してください。
スクリーンショットは英語版なので「Save public key」となっています。
ファイル名や保存するパスは任意 2 ですが, c:\Users\monaka\Documents\id_rsa_putty.pub
というファイル名で保存したこととします。
やれやれこれで Deis に登録できる…わけではありません。もう一手間が要ります。
SourceTree が推奨する秘密鍵/公開鍵のフォーマットは Putty 形式,Deis が期待するのは OpenSSH 形式です。変換を行わずに Deis に与えるとエラーが返ってきます。
そこで,端末ウインドウ内で下記のようにして変換を行います。
ssh-keygen -i -f {Putty形式の公開鍵ファイル名} > {OpenSSH 形式の公開鍵ファイル名}
deis.exe keys:add {OpenSSH 形式の公開鍵ファイル名}
無事に公開鍵が登録されました。
このあとは?
なんだか面倒な感じがするかもしれませんが,公開鍵の登録は一回済ませれば,あとは秘密鍵を変更しないかぎり必要ありません。
ten deploy/day なんてケチなことを言わずに思う存分デプロイを繰り返してください。
あと一つ git 周りの些細な注意事項を。
Heroku ではアプリケーションのデプロイを git push heroku master
で行いますが, Deis では git push deis master
で行います。さすがにここまで丸パクリではないので,お間違えのなきよう。