開発環境と仮想マシンとの間でのGitを用いたソース共有
ソース共有手段の必要性
先日の記事では、空っぽの環境からスタートして、プログラムを動作させることを実現しました。
ただしそのプログラムの内容は、echo
コマンドで書き込んだものだったり特定のコマンドで自動生成された雛形だったりです。
一方で現実の開発では、複数の人がそれぞれのPCのエディタやIDEを用いて編集したソースコードを、ある時点で、デプロイ可能なものにして(ビルドして)、動作させる必要があります。
そこで今回はバージョン管理システムの代名詞、gitを使って、各々の編集した内容を仮想マシンへと共有する仕組みを作っていきます。
なお便宜上「開発環境」という言葉を使っていますが、これは、ここではホストOS側のことです。
サンプルプロジェクトの作成
今回はBitbucketというサービスを例にとります。
ひとり〜少人数でバージョン管理を行うには十分な機能が、無料で利用できます。
ユーザー登録を済ませたら、ホームの左側にあるメニューから、リポジトリの作成を進めます。
今回は、仮にsample-sharing-repo
という名称にします。
リポジトリの作成が済むと、ゼロからスタートするときのためのコマンドを参照できるので、とりあえず開発環境からREADMEをコミットし、プッシュします。
$ cd your_work_space $ git clone https://{your_account}@bitbucket.org/{your_account}/sample-sharing-repo.git $ cd sample-sharing-repo $ echo "# My sample-sharing-repo README" >> README.md $ git add README.md $ git commit -m "Initial commit" $ git push -u origin master
bitbucketの当該リポジトリのページをリロードするとREADMEの反映が確認できます。
ここから、仮想マシンへの共有を進めていきましょう。
仮想マシンからgit clone
では仮想マシンを立ち上げます。
vagrant up
でubuntu/trusty64を起動し、vagrant ssh
で接続します。
開発環境と同様に、git clone
するためにはキーペアが必要です。
まずは仮想環境下でキーペアを作成しましょう。
$ ssh-keygen
次に、生成された公開鍵(~/.ssh/id_rsa.pub)の内容をコピーしてbitbucketへ登録します。
bitbucketのsample-sharing-repo
から、画面左下の「設定」 > Access keysをクリックすると「鍵を追加」することができます。
Label
は何でも構いません。
Key
という入力欄へ公開鍵の内容をペーストして保存しましょう。
また、cloneする際にHost Key Verificationをスキップしたいので、下記のような設定ファイルを作成しておきます。
$ touch ~/.ssh/config $ echo "Host bitbucket.org" >> ~/.ssh/config $ echo " User git" >> ~/.ssh/config $ echo " Port 22" >> ~/.ssh/config $ echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config $ echo " StrictHostKeyChecking no" >> ~/.ssh/config $ cat ~/.ssh/config Host bitbucket.org User git Port 22 IdentityFile ~/.ssh/id_rsa StrictHostKeyChecking no
では仮想マシン側でgit clone
してみます。
$ sudo apt update $ sudo apt install -y git $ git clone git@bitbucket.org:{your_account}/sample-sharing-repo.git $ ls sample-sharing-repo $ cat sample-sharing-repo/README.md # My sample-sharing-repo README
gitリポジトリからソースを引っ張ってくることができるようになりました。
原理的にはこのような形で、クラウド上(プライベート、パブリックとも)からソースを参照してビルドすることができます。