Edited at

GitHubを使って、公開環境を半自動更新させてみた

More than 1 year has passed since last update.


理由



  • 開発環境 → 公開環境 へのデータの移行とかがすごく面倒。


  • rsyncでもいいが、なんとなくGitHubを使いたかった。

  • 毎回pullなりssh接続なりが面倒だった。


接続を自動化


開発環境:Client  公開環境:Server


1.SSH接続時はパスワード無し接続


Client

$ ssh-keygen -t rsa

##〜省略〜##

$ scp ~/.ssh/id_rsa.pub {Serverのユーザ名}@{ServerのIPアドレス}:~/



Server

$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

$ vim /etc/ssh/sshd_config

#ここ変更すれば行けたはず
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys



2.GitHubもSSH接続

gitHubでssh接続する手順 qiita.com

大体書いて頂いてるので省略します。


3.自動でPullさせる


Server

$ cd  /var/www/html/

$ git clone {gitレポジトリurl}
$ cd ~/
$ touch autopull.sh
$ vim autopull.sh



autopull.sh

#!bin/sh

cd /var/www/html/{レポジトリ名}
git pull origin master



これでshell叩けば勝手にPullされます。


4.SSH経由でシェルを実行


Client

$ ssh {Serverのユーザ名}@{ServerのIPアドレス} sh ~/autopull.sh


このコマンドを叩けばいいが、長い。

aliasを使う


Client

$ echo "alias chp='ssh {Serverのユーザ名}@{ServerのIPアドレス} sh ~/autopull.sh'" >> ~/.bashrc


bashを再起動

(ちなみに、bashを再起動するコマンドは)

exec $SHELL -l


5.終了

masterとは別のBranchで作業が完了して、addしてcommitしてpush

GitHubでPullReqest送って完了すれば、あとは、

$ chp

これでサーバの更新が完了する。

やったね。


6.さいごに

とても自己満足な感じなので、本当に効率求めるならいろんなアプリケーション使ったほうが早いかもしれませんね;