GitHub
Ubuntu
SSH
自動化
RSA

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.さいごに

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