スクリーンショット_2018-07-04_2

Bitbucketの最新RepositoryをCloud 9へ反映させる(ssh接続)

はじめまして、はみです
最近BTC FX用の自動取引Botを作り始めました

折角なので、Bot制作で得た知見だったり、テクニックなどをnoteとして紹介していきたいと思います

初回である今回は、タイトルの通り「Bitbucketの最新Repositoryを、Botを稼働させているCloud 9へ反映させる方法」をまとめてみました

Botの管理方法

一度Botを作り、流行りのAWS Cloud 9で稼働させてみたはいいものの、普通のファイル管理では変更箇所がわからなくなったり、切り戻しがしづらかったりとぐちゃぐちゃになりやすいです
そこで、gitによるversion管理を行い、Private Repositoryが無料のBitbucketに置くことにしました

更新が面倒

ただし、折角Botの実装を更新しても、Cloud 9へ毎回コピー&ペーストをするのでは面倒です
折角gitで管理しているのなら、Cloud 9からBitbucketへssh接続し、楽に最新データを引っ張ってこれるようにしましょう

1. Cloud 9で秘密鍵を生成

細かいことは色んなサイトに書いてあるので、簡潔に手順だけ載せます
以下のコマンドをCloud 9上で入力してください

$ ssh-keygen -t rsa
(入力を複数回求められますが、全て空のままEnter)
$ cat ~/.ssh/id_rsa.pub

入力した際の実際のログはこんな感じです(一部伏せています)

ec2-user:~/environment $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ec2-user/.ssh/id_rsa.
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fKMEErZPu... ec2-user@ip-172-xx-x-xxx
The key's randomart image is:
+---[RSA 2048]----+
|   .= .          |
|  o+ *           |
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
|=*=+o.=+.o       |
+----[SHA256]-----+
ec2-user:~/environment $ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+uk... ec2-user@ip-172-xxx-x-xxx

そして、最後に出てきた ssh-rsa から始まる文字列をすべてコピーしてください

2. Bitbucketへ公開鍵(id_rsa.pub)を登録

コピーしたものを以下の手順でBitbucketへ登録します

画像の箇所から「鍵を追加」ボタンを押し

先程コピーした鍵を貼り付け、「鍵を追加」ボタンを押します

そうすると、一覧に表示されるようになったかと思います

これで鍵の登録が完了しました

3. Repository(Bot)をCloneする

これで準備が整ったので、ssh接続でBotを引っ張ってきます
ほしいBotのRepositoryにある「Clone」ボタンを押します

すると、こんな画面になるので、HTTPS から SSH へ変更し、生成されたコマンドをコピーします

Cloud 9へ戻り、コピーしたコマンドを実行することで、今いる場所にCloneされ、新たにDirectoryができるはずです

4. Repositoryを最新のものにする

対象Repositoryのmasterブランチに変更があり、それをCloud 9のデータへ反映させたい場合は、以下のコマンドを実行します
(ただし、Cloud 9上でgit管理下のファイルに何か変更を加えている場合は、全て切り戻してから実行してください)

$ git pull origin master

初回のみ以下のように聞かれますが、 yes と入力してEnterを押してください

うまく行けば、これで問題なく最新の状態にすることができるでしょう

まとめ

以上の設定を済ませておくことで、次回からは

1. 手元で変更を加える
2. Bitbucketへ変更分をpushする
3. Cloud 9でpullすることで変更分を反映

という流れで簡単に最新状態を反映させることができます
また、自分が作ったBotにテスターさんが居る場合にも、この準備をしておいてもらうことで「毎回zipファイルに固めて最新版を渡す」なんていう手間も省け、git pullしてもらうだけになるはずです
(私がこのnoteを書いた一番の理由は、この手順をテスターさんに踏んでもらうための解説を何処かにまとめたかったからです)

今回は以上です!

また何かnoteになるようなことがあれば投稿していきたいと思います

この記事が気に入ったらサポートをしてみませんか?