LoginSignup
3
2

More than 5 years have passed since last update.

ssh & viしてのリリースを、git管理に移行して、デプロイフローを整備する

Posted at

ssh & vi してのリリースとは

  • ソースコードは、EC2サーバーの特定の場所に、唯一存在している
  • ソースコードは、EC2サーバーにsshして、viすることでリリースしている

を指しています。これをどうにかして、

  • github管理にしたい
  • githubにあるソースコードをデプロイできるようにしたい

以下、EC2インスタンスの /var/www/cgi-bin/ 以下にソースコードを散らかしてあると仮定して書きます。

サーバーに設置してあるソースコードを手元に持ってくる

EC2インスタンス内の /var/www/cgi-bin をまるっと手元にscpしてきます。権限、ログファイルなどなどややこしいことは一旦考えません。

$ scp -i ~/.ssh/hoge.pem -r ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:/var/www/cgi-bin ./

githubでプライベートリポジトリをひとつ作成する

githubで課金しましょう。プライベートリポジトリを作れるようになります。または、bitbucket, gitlabなど他のサービスを使っても構わないです。とにかくプライベートリポジトリです。

github管理する

EC2サーバーからscpしてきたときに、実行権限が消失してるかもしれないので、適宜付与してからcommitしてください。

$ git clone git@github.com:hoge-company/hoge-repos.git
$ mv cgi-bin/* hoge-repos/
$ cd hoge-repos
$ git add .
$ git commit -m "initial commit"
$ git push

デプロイする (初回)

いま置いてある cgi-bin をどけます。

$ ssh -i ~/.ssh/hoge.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
$ cd /var/www/
$ mv cgi-bin cgi-bin.bk
$ exit

hgoe-reposをscpすることでデプロイ

$ scp -i ~/.ssh/hoge.pem -r hoge-repos ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:/var/www/cgi-bin 

ひととおり動作確認して、大丈夫そうだったら、cgi-bin.bk は削除してしまいましょう。

$ rm -rf cgi-bin.bk

デプロイする (2回目以降

$ ssh -i ~/.ssh/hoge.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com 'rm -rf /var/www/cgi-bin'
$ scp -i ~/.ssh/hoge.pem -r hoge-repos ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:/var/www/cgi-bin 

この先は

以下のような方向性に発展させるのがよいでしょう。

  • EC2でデプロイサーバーを構える & Capistranoを使う
  • ElasticBeanstalkにする & CircleCIでデプロイする
  • Herokuにする & CircleCIでデプロイする
  • Dockerでクソがんばる

インフラとCI/CDに知見のあるメンバーが不在なら、Heroku & CircleCIが一番楽できるはず。

3
2
1

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
3
2