ssh & viしてのリリースを、git管理に移行して、デプロイフローを整備する
ssh & viしてのリリースを、git管理に移行して、デプロイフローを整備する:
EC2インスタンス内の
githubで課金しましょう。プライベートリポジトリを作れるようになります。または、bitbucket, gitlabなど他のサービスを使っても構わないです。とにかくプライベートリポジトリです。
EC2サーバーからscpしてきたときに、実行権限が消失してるかもしれないので、適宜付与してからcommitしてください。
いま置いてある cgi-bin をどけます。
hgoe-reposをscpすることでデプロイ
ひととおり動作確認して、大丈夫そうだったら、cgi-bin.bk は削除してしまいましょう。
以下のような方向性に発展させるのがよいでしょう。
ssh & vi してのリリースとは
- ソースコードは、EC2サーバーの特定の場所に、唯一存在している
- ソースコードは、EC2サーバーにsshして、viすることでリリースしている
- github管理にしたい
- githubにあるソースコードをデプロイできるようにしたい
/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
$ 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
$ 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でクソがんばる
コメント
コメントを投稿