はじめに
Vagrant は、使いやすいコマンドインターフェイスを介して仮想マシンのボックスを作成、構成、および管理できるオープンソースツールです。基本的に、これは仮想化ツール(VirtualBox、Docker、Hyper-Vなど)とVMの間にインストールされるソフトウェアのレイヤーです。
これは、すべてのチームメンバーが同じ構成で構築されていることを確認するために、ソフトウェア開発でよく使用されます。環境を共有するだけでなく、コードも共有します。これにより、ある開発者のコードが別の開発者のシステムで作業できるようになり、共同開発と共同開発が可能になります。
このチュートリアルでは、Vagrantの構成と管理について知っておく必要のあるすべてのことを説明します。
Vagrant入門
開始する前に、仮想化ソリューションがすでにあることを確認してください システム上で。 Vagrantで動作するソリューションには、VirtualBox、VMware、Docker、Hyper-V、およびカスタムソリューションが含まれます。
インストール
1. Vagrantの最新バージョンを見つけるには、Webブラウザを使用して公式Webページに移動します。
https://www.vagrantup.com/downloads.html
2.サポートされているすべての異なるオペレーティングシステムのリストが表示され、それぞれに32ビットと64ビットのパッケージが含まれています。オペレーティングシステムに適したファイルをダウンロードしてから、インストーラーを実行します。
3.インストールが成功したかどうかを確認する方法は2つあります。
- 次のいずれかを使用できます:
vagrant -v
コンピュータで実行されているバージョン番号が表示されます。現在までの最新バージョンはVagrant2.2.6 。
- または、ターミナルで次のコマンドを入力できます。
vagrant
この出力には、ツールが正しくインストールされている場合に頻繁に使用されるコマンドのリストが表示されます。
VagrantProjectのセットアップ
1. Vagrantファイルを保存するディレクトリを作成することから始めます:
sudo mkdir vagrant-test
cd vagrant-test
2.共通ライブラリからUbuntuTrustyTahrディストリビューションをダウンロードし、次のコマンドを使用して基本的なVagrantfileを作成します。
vagrant init ubuntu/trusty64
必要に応じて、https://app.vagrantup.com/boxes/searchにアクセスし、選択したVagrantboxをダウンロードできます。
init
を実行するとき コマンドを実行すると、Vagrantはボックスを現在のディレクトリにインストールします。 Vagrantfileは同じディレクトリに配置され、編集またはコピーできます。
Vagrant Boxs
Vagrantセットアップの基本ユニットは、「ボックス」または「Vagrantbox」と呼ばれます。 これは、オペレーティングシステム環境の完全な自己完結型のイメージです。
Vagrant Boxは、ベースオペレーティングシステムイメージのクローンです。クローンを使用すると、起動とプロビジョニングのプロセスがスピードアップします。
1. init
を使用する代わりに 上記のコマンドを使用すると、次のコマンドでボックスをダウンロードして追加できます:
vagrant box add ubuntu/trusty64
これにより、ボックスがダウンロードされ、ローカルに保存されます。
2.次に、提供する仮想ボックスのVagrantfileを構成する必要があります。次のコマンドでVagrantfileを開きます:
sudo vi vagrantfile
3. Vagrantfileが開いたら、 config.vm.boxを変更します 「ベース」からの文字列 「ubuntu/trusty64」へ 。
config.vm.box = "ubuntu/trusty64"
end
の上に別の行を追加できます ボックスバージョンを指定するコマンド:
config.vm.box_version = “1.0.1”
または、ボックスに直接リンクするURLを指定することもできます:
config.vm.box_url = “https://vagrantcloud.com/ubuntu/trusty64”
ボックスを削除する場合は、次を使用してください:
vagrant box remove ubuntu/trusty64
VagrantFile
完全なオペレーティングシステムイメージを構築してコピーする代わりに、Vagrantは「Vagrantfile」を使用してボックスの構成を指定します。
プロビジョニング
ゲストOSに十分な時間を費やしている場合は、多くのアプリケーションがロードされていないことに気付いたかもしれません。
幸い、Vagrantは bootstrap.shによる自動プロビジョニングをサポートしています Vagrantfileと同じディレクトリに保存されたファイル。
基本的なリソースモニターを追加するには、 nmon 、ゲストOSで次のコマンドを使用します:
sudo vi bootstrap.sh
そのファイルに、次のように入力します。
#!/usr/bin/env bash
apt-get update
apt-get install -y nmon
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi
保存 ファイルを終了します。次に、Vagrantfileを編集し、プロビジョニングラインを追加します。次のようになります。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision :shell, path: "bootstrap.sh"
end
VagrantがVagrantfileを読み取ると、 bootstrap.shを読み取るようにリダイレクトされます。 作成したファイル。そのブートストラップファイルはパッケージマネージャーを更新してから、 nmonをインストールします パッケージ。 vagrant up
を使用する場合 およびvagrant ssh
コマンドを実行すると、 nmonを実行できるようになります。 仮想マシンのリソースを表示します。
プロビジョニングは、仮想環境を事前構成するための強力なツールを提供します。 apache2でも同じことができます 、仮想環境にWebサーバーを作成します。
プロバイダー
このチュートリアルでは、VirtualBoxでVagrantを使用する方法を説明します。ただし、Vagrantは他の多くのバックエンドプロバイダーとも連携できます。
VMwareを使用してVagrantを起動するには、次のコマンドを実行します。
vagrant up –provider=vmware_fusion
または、AmazonWebServicesを使用してVagrantを起動できます。
vagrant up –provider=aws
最初のコマンドが実行されると、後続のコマンドは同じプロバイダーに適用されます。
起動と接続
Vagrant Up
新しい仮想環境を起動するための主なコマンドは次のとおりです。
vagrant up
これにより、ソフトウェアが実行され、仮想Ubuntu環境がすばやく開始されます。ただし、仮想マシンが実行されていても、出力は表示されません。 Vagrantはいかなる種類のユーザーインターフェースも提供しません。
Vagrant SSH
SSH接続を使用して仮想マシンに接続(および実行されていることを確認)できます:
vagrant ssh
これにより、新しい仮想マシンへのセキュアシェル接続が開きます。コマンドプロンプトが[メール保護]に変わります 仮想マシンにログインしていることを示します。
仮想マシンの探索が終了したら、 CTRL-Dを使用してセッションを終了できます。 。仮想マシンは引き続きバックグラウンドで実行されますが、SSH接続は閉じられます。
仮想マシンの実行を停止するには、次のように入力します。
vagrant destroy
ダウンロードしたファイルは残りますが、仮想マシン内で実行されていたものはすべて失われます。
同期されたフォルダ
Vagrantは、プロジェクトディレクトリにあるコンテンツをゲスト(仮想)システムの特別なディレクトリと自動的に同期します。プロジェクトディレクトリは、前に作成したもので、 / vagrant-test 。 Vagrantfileを保持しているものと同じです。
仮想マシンにログインすると、デフォルトでは / home / vagrant /で開始されます ディレクトリ。別のディレクトリ、 / vagrant / 、ホストシステム上にあるのと同じファイルを保持します。
vagrant up
を使用できます およびvagrant ssh
仮想マシンを起動してログインし、 / vagrantにテストドキュメントを作成します ディレクトリ。
exit
を使用します コマンドを使用してSSHセッションを閉じ、 ls
を使用します vagrant-testディレクトリの内容を一覧表示します。作成したテストファイルが表示されます。
これは、SSHセッションを使用せずにゲストOSでファイルを管理するための便利な方法です。
ネットワーキング
Vagrantには、仮想マシンをネットワーク上に配置するためのオプションが含まれています。 Vagrantfileの最後、 end
の直前 コマンドを使用するには、 config.vm.network
を使用します ネットワーク設定を指定するコマンド。
例:
config.vm.network “forwarded_port”, guest: 80, host: 8080
変更を行うには、保存 次のコマンドでVagrantをリロードします:
vagrant reload
これにより、ゲストシステムの転送ポートが作成されます。プライベートネットワーク、パブリックネットワーク、およびその他のより高度なオプションを定義することもできます。
Vagrant Share
Vagrantには、カスタムURLを使用してVagrant環境を共有するために使用できる便利な機能があります。
Vagrant環境を実行している状態で、次のコマンドを使用します。
vagrant share
システムはVagrantShareセッションを作成してから、URLを生成します。このURLをコピーして、他の人に送信することができます。 VagrantセッションでApacheを構成している場合、このURLを使用するすべての人がApache構成ページを見ることができます。このURLは、共有フォルダの内容を変更すると変更されます。
CTRL-Cで共有セッションを閉じることができます 。
詳細については、VagrantSharingのドキュメントを参照してください。
Vagrantのクリーンアップ
ゲストシステムでの作業が完了したら、セッションを終了する方法をいくつか選択できます。
1.マシンを停止して現在の状態を保存するには、次のコマンドを実行します。
vagrant suspend
vagrant up
を実行して再開できます また。これは、マシンをスリープモードにするのとよく似ています。 。
2.仮想マシンをシャットダウンするには、次のコマンドを使用します。
vagrant halt
繰り返しになりますが、 vagrant up
同じ仮想マシンが再起動し、中断したところから再開できます。これは、シャットダウンによく似ています 通常のマシン。
3.システムから仮想マシンのすべてのトレースを削除するには、次のように入力します。
vagrant destroy
仮想マシンに保存したものはすべて削除されます。これにより、Vagrantが使用するシステムリソースが解放されます。
次回vagrant up
、マシンを再インポートして再プロビジョニングする必要があります。これは、ハードドライブのフォーマットによく似ています。 システムで、新しい画像を再読み込み 。