Vagrantのチュートリアル日本語訳メモ2

投稿者: | 2018年12月25日

Vagrantを触る機会ができたので、Vagrantのgetting startedを雑に和訳しつつ練習します。

これはその1の続きです。

その1の注意事項を理解したうえでお願いします。

Boxes

遅くて退屈な手続きである手書きから仮想マシンを構築する代わりに、Vagrantは、仮想マシンを高速に複製するためのベースイメージを使います。それらのベースイメージは、Vagrant内では[boxes]と呼ばれ、あなたのVagrant環境で使うboxを特定することは常に、Vagrantfile作成後の最初のステップとなります。

Installing a Box

もし、getting started overview pageでコマンドを実行しているなら、あなたはすでにboxをインストールしているので、以下のコマンドを実行する必要はありません。
しかし、どのようにboxを管理するのかをより学ぶために、このセクションを読む価値はあります。

Boxは、vagrant box addコマンドでVagrantに追加されます。これは、複数のVagrant環境を再利用できるよう、特定の名前で保存します。もし、boxをまだ追加していない場合、今から実行することができます。

このコマンドでは、HashiCorp’s Vagrant Cloud box catalogという、boxを提供、検索できる場所から、”hashicorp/precise64″と名付けられたboxをダウンロードします。HashiCorp’s Vagrant Cloudからboxをダウンロードするのが最も簡単である一方、自分のpc、URL等からboxを追加することもできます。

boxは現在のユーザーのためにglobalに保存されます。各プロジェクトは、初期イメージとしてそのboxを複製し、現在のベースイメージは絶対に編集しません。これは、もしあなたがhashicorp/precise64というboxを使った二つのプロジェクトを持っているとき、片方のゲストマシンにファイルを追加することは、もう片方のマシンには何ら影響を与えないということです。

上述のコマンドで、boxは名前管理されていると気づくでしょう。box名は2つのパートに分かれています – “/”で分けられたusernameとboxnameです。上述の例だと、usernameはhashicorpであり、boxはprecise64です。あなたはまた、boxをURLやローカルなファイルパスで指定することもできますが、その内容はgetting started guideには含まれていません。

Namespaces do not guarantee canonical boxes!

“名前は正規のboxであることを保証していません!”

よくある誤解に、namespaceがubuntuであるものは、Ubuntuのboxのための正規の名前空間だ、というのがあります。これは正しくありません。Vagrant Cloud上でのnamespaceはGitHubの名前空間ととても良く似ています。GitHubのサポートチームが、誰かのリポジトリ内の問題を手助けすることは不可能であるのと同様に、HashiCorpのサポートチームは、サードパーティで制作されたboxを手助けすることはできません。

 

Using a Box

さて、Vagrantにboxが追加されたので、私たちはそれをベースとして使用するため、プロジェクトの設定をする必要があります。Vagrantfileを開き、中身を以下のように変更してください。

この場合の、”hashicorp/precise64″というのは、先ほどaddした名前と合致していなくてはなりません。これが、Vagrantがどのようにして使用するboxを知るのか、の答えです。もしboxをaddしていなかった場合、Vagrantは実行時にbox1を自動的にダウンロードして追加します。

こんな感じで、config.vm.box_versionを特定することにより、boxのバージョンを明確に指定することもできます。

config.vm.box_urlを使うことで、直接urlを指定することもできます。

次のセクションでは、vagrant環境を立ち上げて、少し干渉していきます。

Finding More Boxes

省略しました。たぶん言ってることは、さっきのCloud Boxのサイトでたくさん探せるよ、と言っているんだと思います。

Next Steps

次は、”bringing up and access the Vagrant machine via SSH”(https://www.vagrantup.com/intro/getting-started/up.html)を読みましょう

そのまま次に行きます。

 

Up and SSH

vagrant環境を初めて立ち上げるときです。あなたのコマンドラインで以下を実行します。

数分以内で、このコマンドは終了し、ubuntuが動いている仮想環境を動かします。Vagrantは仮想マシンをUIなしに実行させるため、実際には何も見えないでしょう。動いていることを証明するために、仮想マシンにSSHでログインしてみましょう。

SSHとは、おもにほかのパソコンに接続するために用いられる通信方式です。

このコマンドはあなたを本格的なSSHセッションに連れていきます。進んでいき、マシーンに干渉し、あなたのやりたいことをしましょう。魅力的である一方、”rm -rf /”コマンドには注意しましょう。Vagrantはホスト側においてVagrantfileを含んでいるディレクトリを、/vagrantディレクトリとして共有しているため、このコマンドでそれらのファイルを消去することができるためです。共有フォルダについては次のセクションでお話しします。

何が起こるのか少し考えてみましょう。設定1行と1コマンドをあなたの端末に入力するだけで、全機能を備えた、SSHで接続可能な仮想マシンを起動できました。最高。このSSHセッションは、CTRL+Dで終了できます。

マシンがこれ以上必要なくなったのなら、vagrant destroyコマンドをホストマシン側で実行しましょう。このコマンドにより、Vagrantは仮想マシンによって使われているすべてのリソースを消去します。

vagrant destoryコマンドでは、ダウンロードしたboxファイルは削除されません。完全にboxファイルを削除するのであれば、vagrant box removeコマンドを使用してください。

Next Steps

次は共有フォルダ(https://www.vagrantup.com/intro/getting-started/synced_folders.html)についてみていきましょう。

この際なので次に行きましょう。

 

Synced Folders

超簡単に仮想マシンを持つことができるのはかっこよいですが、多くの人は、SSHを通じた端末で起動できる普通のファイルエディターを使いたくありません。幸運にも、Vagrantではそんなことをする必要がありません。共有フォルダを使用することで、Vagrantは自動的に仮想マシンとファイルの同期をとってくれます。

デフォルトでは、Vagrantは、仮想マシンの/vagrantディレクトリを、あなたのプロジェクトディレクトリと共有します(Vagrantfileのある場所のことです)

もし、あなたの端末上でincompatible guest addition(もしくは、no guest addition)に関するエラーが表示された場合、boxをアップデートするか、hashicorp/precise64のような違うboxを選択する必要があります。何人かのユーザーは、vagrant-vbguestというプラグインで成功していますが、これはVagrant core teamによって公式にサポートされてはいません。

vagrant upを再度行い、SSHで見てみましょう。

信じるかどうかわかりませんが、仮想マシン内で見ることのできるvagrantfileは、あなたの実際のホストマシン上にあるvagrantfileと同じものです。そのことをあなたの手で証明してみましょう。

touchコマンドでファイルを作成し、exitで仮想マシンから出た後に、ファイル一覧を出力させています。(lsができないなら、dir等のコマンドで確認します。)

何と!”foo”があなたのホストマシン上にあります。見た通り、Vagrantはフォルダを同期します。

synced foldersで、あなたはホストマシンにある自身の持つファイルエディターを使い続け、ゲストマシンにそのファイルを同期することができます。

 

Next Steps

次は、provisioning([準備]の意, https://www.vagrantup.com/intro/getting-started/provisioning.html)について知りましょう

 

 

その3へ続く。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA