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

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


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が一番楽できるはず。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)