LoginSignup
6
5

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-08-29

理由

  • 開発環境 → 公開環境 へのデータの移行とかがすごく面倒。
  • 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.さいごに

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

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5