Gitでプログラムの自動配信

Gitを本格的に使い始めて、概ね理解できたのだが、ユーザ環境への本番リリースにまだ仕組みを導入仕切れていなかったので最後に実施した。

要するに、ユーザ環境のサーバがGitから自動的にプログラムをダウンロードすると言うだけのことなので、コマンドならGit pullですむのだ。

その際、バッチファイルを作って、Gitのリポジトリにあるhooksに書いたpost-reciveをバッチファイルにしてやれば良いのでディレクトリを移動するコマンドとGitコマンドを単に書くだけですむ

ただし、WindowsServerのコマンドでGitコマンドを叩くとsshのパスワードを聞いてきてしまい、これを回避しないと駄目だなぁと言う訳でキー接続出来る様にした。

GitのGUIツールのメニューにssh keyと言うのが用意されていたのでそれを開いてキーを作成してそのpubキーをリポジトリに設置してGitのbashからでもパスワード無しでつながる様にして完成

これで、こちらのローカルでプログラムを修正してリリース用のリポジトリにプッシュしておけば、サーバ側で勝手にプルしてくれるので手間いらずだ。

今までは、プログラムを更新するのにリモートでつないでFTPやらダウンロードやらDoropboxやらを使っていたのだが、接続に隙があると、悪意のある連中のサーバ攻撃の的になってリスクがある

この方法だとsshのキー接続なのでかなり安全に勝手にダウンロードしてくれるのでセキュアなデプロイ環境になったと言う訳だ。

これで、ユーザのサーバにはログインする必要がなくなって放置プレイが出来る。

ちなみに容量の大きいファイルはignoreしていて、exeなんかはそれに入れていると思うのだが、リリース用のリポジトリなのでexeを対象としたデプロイなので問題ない。

Soucetreeを使っているときに、ちょっと大きめのファイルだと直ぐに警告が出るのでGitを知らない時はその警告に気をつかったし、送ろうとしてもSoucetreeが重すぎて、良くGitを壊してしまい神経質になっているところがあったのだが、Soucetreeを使わなくなってかなり健全な使い方が出来る様になった。

GitはじめはSoucetree様々で色々と学習させてもらったけど、もはや俺には無用の長物と化してしまい、重いしなんか操作がわかりにくくて癖が強い

GitKrakenはその点、俺の感性にマッチしていて、画面が何より美しい