このVagrantチュートリアルでは、Vagrant、vagrant box、vagrantfile、プロビジョニングツール、Linuxオペレーティングシステムにvagrantをインストールする方法、そして最後にコマンドラインから仮想マシンを作成および管理するためのいくつかの基本的なvagrantコマンドについて学習します。
1。 Vagrantの概要
Vagrant は、仮想ソフトウェア開発環境を構築および保守するためのオープンソースソフトウェアです。クリーンで、構成が簡単で、再現性があり、ポータブルな開発環境を提供します。つまり、Vagrantを使用すると、どこでも使用できるユニバーサルソフトウェア開発環境を簡単かつ迅速に展開できます。 Vagrantは、単に「私のマシンで動作する」という言い訳を排除します。なぜなら、誰もが同じ構成のセットで同じ環境で作業しているからです。使用しているOSは関係ありません。
Vagrantは、開発者が共通のプロジェクトで作業するための同一の共同作業環境をセットアップするためによく使用されます。必要なすべての依存関係とその構成設定を単一の使い捨て環境に分離します。他の開発者が同じ構成ファイルで開発環境を作成すると、同じ設定で同じ環境を取得します。
Vagrantは、 Rubyで記述されたクロスプラットフォームアプリケーションです。 言語。 GNU / Linux、Mac OS、MicrosoftWindowsをサポートしています。 Hashicorpによって開発されました MITでリリースされました ライセンス。
1.1。 Vagrant box
「ボックス」は、Vagrant環境のフォーマットおよび拡張機能です。 Vagrantボックスは単なるベースイメージです。それらは、VirtualboxイメージまたはVMwareイメージ、あるいはAmazon Machine Image(AMI)のようなクラウドプロバイダーのイメージである可能性があります。 Vagrant Boxを他のシステムにコピーして、現在の開発の正確なレプリカをセットアップできます。
Vagrant Cloudでダウンロードできる事前構成済みのVagrantボックスが多数あります。 パブリックリポジトリ。事前設定されたボックスを使用したくない場合は、好みに応じてボックスを作成し、このリポジトリを介してすべてに配布します。
1.2。 Vagrantfile
オペレーティングシステムとソフトウェアの要件は、「vagrantfile」という名前の構成ファイルで定義されています。このファイルは、Vagrantボックスと一緒に配布されます。 Vagrantを使用してVMを初期化すると、VMはこのファイルを読み取り、それに応じて開発環境をセットアップします。したがって、vagrantfileの実際の目的は、仮想マシンのタイプと、VMを構成およびプロビジョニングする方法を説明することです。
次の詳細は、一般的なvagrantfileで定義されています。
- オペレーティングシステムのバージョン例: Ubuntubionic。
- 自動ボックス更新チェックを有効/無効にします。
- ネットワーク構成;
- ポートフォワーディング
- プライベートネットワーク(マシンへのホストのみのアクセス)を構成します。
- パブリックネットワーク(ブリッジネットワーク)を構成します。
- フォルダをゲストVMと共有します。
- 優先プロバイダーを設定します。例: virtualbox、kvm。
- VMへのメモリの合計量を定義します。
- シェルスクリプトまたはAnsibleなどの構成管理ツールを使用してプロビジョニングを有効にします。
1.3。プロビジョニングツール
Vagrantは、KVMやVirtualboxのようなスタンドアロンの仮想化プラットフォームではありません。これは、仮想化ソフトウェアと仮想マシンの間に位置する単なるラッパーおよびフロントエンドです。 Vagrantは、さまざまなサービスプロバイダーとプロビジョニングツールを使用して、開発環境を作成および管理します。
仮想マシンは、VirtualBox、KVM、Docker、VMwareなどの一般的な仮想化アプリケーション、およびAWS、Azure、GCEなどのクラウドサービスプロバイダーの上に構築されています。サポートされているプロバイダーの完全なリストは、こちらで確認できます。 。 Vagrantは、VirtualBox、Hyper-V、およびDockerをサポートする状態で出荷されます。 VirtualBoxはVagrantのデフォルトプロバイダーです。
仮想マシンが構築されると、単純なシェルスクリプトと、Ansible、CFEngine、Chef、Docker、Podman、Puppet、Saltなどの業界標準の構成管理ツールを使用してソフトウェアをインストールできます。ユーザーは次の構成をカスタマイズすることもできます。プロビジョニングツールを使用した要件に応じた仮想環境。
簡単に言うと、プロバイダー(VirtualBox、AWSなど)を使用して仮想環境を作成し、プロビジョナー(Ansible、Puppetなど)を使用して仮想環境をカスタマイズします。
2。 LinuxにVagrantをインストールする
Vagrantのインストールは信じられないほど簡単で簡単です。 Vagrantダウンロードページから最新バージョンをダウンロードし、オペレーティングシステムの標準手順を使用してインストールするだけです。さまざまなLinuxプラットフォームにVagrantをインストールする方法については、次のリンクを参照してください。
- LinuxにVagrantをインストールする方法
3。 Vagrantチュートリアル-仮想マシンを作成および管理するための基本的なVagrantコマンド
ここでは、仮想化された開発をセットアップおよび管理するために必要な基本的なVagrantコマンドのみの例を示しました。 Vagrantの完全な使用法については、最後にある公式ドキュメントを参照してください。
3.1。 Vagrantプロジェクトディレクトリを作成する
まず、プロジェクトディレクトリを作成する必要があります。
myvagrants
というディレクトリを作成します 私の仮想環境の場合:
$ mkdir myvagrants
そのディレクトリにCdして、仮想マシンを構築および保存します。
$ cd myvagrants
3.2。 Vagrant環境を初期化する
次のコマンドを使用してVagrant環境を初期化します。
$ vagrant init hashicorp/bionic64
出力例:
A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
上記のコマンドは、現在のディレクトリをデフォルトのVagrant環境として初期化し、ベースVagrantfileを作成します。
cat
を使用して、新しく作成されたvagrantfileのコンテンツを表示できます。 コマンドを実行し、構築する仮想マシンの詳細を把握します。
$ cat Vagrantfile | less
以降の手順でVMを起動すると、HashiCorpによって公開されているUbuntuバイオニックボックスがダウンロードされます。 Vagrantチームは、Bentoボックスの使用も推奨しています。 。これらはオープンソースであり、Virtualbox、VMWare、Parallelsなどの一般的なプロバイダー向けに構築されています。公式に推奨されるボックスセットは、HashiCorpとBentoの2つだけです。
3.3。仮想マシンを起動する
次に、コマンドを使用して、vagrantfile(前の手順で作成した)に従って仮想マシンを作成して起動します。
$ vagrant up
出力例:
Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'hashicorp/bionic64' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'hashicorp/bionic64' default: URL: https://vagrantcloud.com/hashicorp/bionic64 ==> default: Adding box 'hashicorp/bionic64' (v1.0.282) for provider: virtualbox default: Downloading: https://vagrantcloud.com/hashicorp/boxes/bionic64/versions/1.0.282/providers/virtualbox.box Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com ==> default: Successfully added box 'hashicorp/bionic64' (v1.0.282) for 'virtualbox'! ==> default: Importing base box 'hashicorp/bionic64'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date... ==> default: Setting the name of the VM: myvagrants_default_1597837509450_67666 Vagrant is currently configured to create VirtualBox synced folders with the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant guest is not trusted, you may want to disable this option. For more information on this option, please refer to the VirtualBox manual: https://www.virtualbox.org/manual/ch04.html#sharedfolders This option can be disabled globally with an environment variable: VAGRANT_DISABLE_VBOXSYMLINKCREATE=1 or on a per folder basis within the Vagrantfile: config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection reset. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... default: Removing insecure key from the guest if it's present... default: Key inserted! Disconnecting and reconnecting using new SSH key... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 6.0.10 default: VirtualBox Version: 6.1 ==> default: Mounting shared folders... default: /vagrant => /home/sk/myvagrants
上記のコマンドは、VagrantクラウドからUbuntuバイオニックボックスをダウンロードし、 "myvagrants_default_1597837509450_67666"という名前の新しい仮想マシンを作成します。 、Virtualboxに追加して、VMを自動的に起動します。
VMが実行されていても、通知は表示されません。 VMが実行されているかどうかを確認するには、仮想化アプリケーション(VirtualBoxやVirt-managerなど)を開き、VMが実行されているかどうかを確認します。
VagrantはVirtualboxをデフォルトのプロバイダーとして使用しているため、Virtualboxマネージャーから実行中のVMを確認できます。
ご覧のとおり、UbuntubionicVMはVirtualboxで実行されています。
Virt-managerなどの他のプロバイダーを使用している場合は、それを開いてVagrantマシンが実行されているかどうかを確認します。
3.4。仮想マシンへのアクセス
SSHを使用して実行中のVMに接続してアクセスできます。
コマンドを使用して実行中のVagrantボックスにSSHで接続するには、次のコマンドを実行します。
$ vagrant ssh
出力例:
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Wed Aug 24 11:56:42 UTC 2020 System load: 0.08 Processes: 88 Usage of /: 2.5% of 61.80GB Users logged in: 0 Memory usage: 11% IP address for eth0: 10.0.2.15 Swap usage: 0% * Are you ready for Kubernetes 1.19? It's nearly here! Try RC3 with sudo snap install microk8s --channel=1.19/candidate --classic https://microk8s.io/ has docs and details. 0 packages can be updated. 0 updates are security updates. [email protected]:~$
3.5。ローカルファイルとゲストファイルを同期する
箱から出してすぐに使えるVagrantサポートファイルの同期。デフォルトでは、Vagrantはプロジェクトディレクトリ(Vagrantfileを含むディレクトリ。私の場合は ~/myvagrants
)を共有します。 。)/vagrant
へ ゲスト仮想マシンのディレクトリ。
/vagrant
の内容を一覧表示することで確認できます 仮想マシンのディレクトリ:
[email protected]:~$ ls /vagrant/ Vagrantfile
仮想マシン内に表示されるVagrantfileは、実際には実際のホストマシンにあるVagrantfileと同じであることに注意してください。
同期が実際に機能するかどうかをテストするには、/vagrant
にサンプルファイルを作成します ゲストマシンのディレクトリ:
[email protected]:~$ touch /vagrant/test.txt
VMのSSHセッションを終了します:
[email protected]:~$ logout
次に、ホストシステムのローカルプロジェクトディレクトリを確認します。同じファイルがホストマシンでも作成されていることがわかります。
[email protected]:~/myvagrants$ ls test.txt Vagrantfile
3.6。仮想マシンのステータスを表示する
仮想環境内の仮想マシンの状態を表示するには、次のコマンドを実行します。
$ vagrant status
出力例:
Current machine states: default running (virtualbox) The VM is running. To stop this VM, you can run `vagrant halt` to shut it down forcefully, or you can run `vagrant suspend` to simply suspend the virtual machine. In either case, to restart it again, simply run `vagrant up`.
上記のように、VMは1つしかなく、現在実行中です。
VMの電源がオフの場合、次の出力が表示されます。
Current machine states: default poweroff (virtualbox) The VM is powered off. To restart the VM, simply run `vagrant up`
3.7。すべての仮想環境のステータスを表示する
次のコマンドを使用して、システム上のすべての既知の仮想環境に関する情報を表示できます。
$ vagrant global-status
出力例:
id name provider state directory ------------------------------------------------------------------------- 2086482 default virtualbox poweroff /home/sk/myvagrants The above shows information about all known Vagrant environments on this machine. This data is cached and may not be completely up-to-date (use "vagrant global-status --prune" to prune invalid entries). To interact with any of the machines, you can go to that directory and run Vagrant, or you can use the ID directly with Vagrant commands from any directory. For example: "vagrant destroy 1a2b3c4d"
上記のコマンドは、VM ID、名前、プロバイダー、VMの状態、および仮想環境ディレクトリを一覧表示します。
出力がキャッシュされ、正しくない場合があります。したがって、次のコマンドを実行して無効なエントリを削除し、仮想環境の最新のステータスを取得します。
$ vagrant global-status --prune
3.8。仮想マシンを一時停止する
実行中のVMを一時停止するには、次を実行します。
$ vagrant suspend
出力例:
==> default: Saving VM state and suspending execution…
3.9。仮想マシンを再開する
現在の仮想環境で一時停止中のVMを再開するには、次のコマンドを実行します。
$ vagrant resume
出力例:
==> default: Resuming suspended VM... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key ==> default: Machine booted and ready! ==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision` ==> default: flag to force provisioning. Provisioners marked to run always will still run.
3.10。仮想マシンを再起動します
実行中のVMを再起動するには、次の手順を実行します。
$ vagrant reload
このコマンドは、VMを正常にシャットダウンし、再起動します。
3.11。仮想マシンの停止/シャットダウン
実行中のVMを停止またはシャットダウンするには、次の手順を実行します。
$ vagrant halt
3.12。仮想マシンを削除する
VMのすべてのトレースを停止して削除するには、次のコマンドを実行します。
$ vagrant destroy
y
と入力します Enterキーを押して、仮想マシンを削除します。
確認なしでVMを削除する場合は、次を実行します。
$ vagrant destroy -f
3.13。仮想マシンのリセット
ボックスを実際に削除せずに、仮想マシンを元の状態にリセットしたい場合があります。これは、VagrantBoxを何度もダウンロードすることなくクリーンな仮想環境をデプロイするのに役立ちます。
仮想マシンを元の状態にリセットするには、次の手順を実行します。
$ vagrant destroy
$ vagrant up
最初のコマンドは、実行中の仮想マシンをシャットダウンし、それに関連付けられているすべてのリソースを削除します。そして、2番目のコマンドは、既存のvagrantボックスを使用して新しい新しい仮想マシンを再作成します。
詳細については、次のリンクを参照してください:
- Vagrant仮想マシンを元の状態にリセットする方法
3.14。任意のディレクトリからVagrantコマンドを実行する
通常、Vagrantマシンを起動、停止、リロード、プロジェクトのディレクトリから削除しますよね?はい!ただし、VagrantマシンのIDを使用して、任意のディレクトリからVagrantコマンドを実行できます。
VagrantマシンのIDを見つけるには、次のコマンドを実行します。
$ vagrant global-status
出力例:
id name provider state directory ---------------------------------------------------------------------- ddc1a10 default libvirt shutoff /home/sk/Vagrant/Ubuntu2004 f4904ad default libvirt shutoff /home/sk/Vagrant/Archlinux 831f9c0 default libvirt shutoff /home/sk/Vagrant/Gentoo 3587422 default libvirt shutoff /home/sk/Vagrant/Rhel8 b2279ad default libvirt shutoff /home/sk/Vagrant/Almalinux8 The above shows information about all known Vagrant environments on this machine. This data is cached and may not be completely up-to-date (use "vagrant global-status --prune" to prune invalid entries). To interact with any of the machines, you can go to that directory and run Vagrant, or you can use the ID directly with Vagrant commands from any directory. For example: "vagrant destroy 1a2b3c4d"
上記の出力にあるように、vagrant global-status
コマンドは、システム内のすべての既知の仮想環境の詳細を表示します。上記の出力の最初の列は、各VagrantマシンのIDを示しています。
IDは、任意のディレクトリのVagrantコマンドで直接使用できます。たとえば、任意のディレクトリからVagrantマシンを起動するには、次のように使用できます。
$ vagrant up b2279ad
これにより、ID b2279ad
のvagrantマシンが起動します 。
同様に、他のVagrantコマンドも使用できます。
$ vagrant status b2279ad
$ vagrant ssh b2279ad
$ vagrant halt b2279ad
$ vagrant destroy b2279ad
3.15。 Vagrantボックスを一覧表示する
Vagrantとともにインストールされる利用可能なすべてのボックスを一覧表示するには、次のコマンドを実行します:
$ vagrant box list
出力例:
hashicorp/bionic64 (virtualbox, 1.0.282)
著者名、ウェブサイト、リポジトリ、説明などの追加のボックスの詳細を表示する場合は、-i
を使用します フラグ:
$ vagrant box list -i
出力例:
generic/alpine38 (virtualbox, 3.1.16) - Author: Ladar Levison - Website: https://roboxes.org/ - Artifacts: https://vagrantcloud.com/generic/ - Repository: https://github.com/lavabit/robox/ - Description: Basic virtual machine images, for a variety of operating systems/hypervisors, and ready to serve as base bxoes.
3.16。 Vagrantボックスが古くなっていないか確認してください
Vagrant環境で使用しているボックスが古くなっているかどうかを確認するには、Vagrant環境、つまりプロジェクトのディレクトリに移動します。
$ cd myvagrants/
実行:
$ vagrant box outdated Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date…
3.17。 Vagrantボックスを更新する
古いボックスがある場合は、次のように更新できます。
$ vagrant box update
出力例:
==> default: Checking for updates to 'hashicorp/bionic64' default: Latest installed version: 1.0.282 default: Version constraints: default: Provider: virtualbox ==> default: Box 'hashicorp/bionic64' (v1.0.282) is running the latest version.
3.18。 Vagrantボックスをダウンロード
vagrant init
コマンドは、Vagrantfileで定義されたそれぞれのVagrantボックスをダウンロードすることにより、Vagrant環境を初期化して開始します。
Vagrantボックスを手動でダウンロードし、そのvagrantfileを編集して、起動することもできます。
Vagrantボックスをダウンロードするには、次のコマンドを実行します:
$ vagrant box add bento/debian-10.5
上記のコマンドは、Bentoによって公開されたDebian10.5バージョンボックスをダウンロードします。現在使用しているプロバイダー(virtualboxやvmwareなど)を選択するように求められます。いずれかを選択してEnterキーを押すだけで、ボックスをダウンロードできます。
出力例:
==> box: Loading metadata for box 'bento/debian-10.5' box: URL: https://vagrantcloud.com/bento/debian-10.5 This box can work with multiple providers! The providers that it can work with are listed below. Please review the list and choose the provider you will be working with. 1) parallels 2) virtualbox 3) vmware_desktop Enter your choice: 2 ==> box: Adding box 'bento/debian-10.5' (v202008.16.0) for provider: virtualbox box: Downloading: https://vagrantcloud.com/bento/boxes/debian-10.5/versions/202008.16.0/providers/virtualbox.box Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com ==> box: Successfully added box 'bento/debian-10.5' (v202008.16.0) for 'virtualbox'
利用可能なボックスを一覧表示することで確認できます:
$ vagrant box list
出力例:
bento/debian-10.5 (virtualbox, 202008.16.0) hashicorp/bionic64 (virtualbox, 1.0.282)
ダウンロードしたすべてのVagrantボックスは、 ~/.vagrant.d/boxes
で入手できます。 ホストシステムのディレクトリ。
3.19。 Vagrantボックスのサイズを表示する
前のセクションで述べたように、ダウンロードされたVagrantボックスは ~/.vagrant.d/boxes
に保存されます。 ディレクトリ。
次のコマンドを使用して、このディレクトリにダウンロードされたすべてのボックスのリストを表示できます。
$ ls ~/.vagrant.d/boxes almalinux-VAGRANTSLASH-8 generic-VAGRANTSLASH-debian10 archlinux-VAGRANTSLASH-archlinux generic-VAGRANTSLASH-gentoo centos-VAGRANTSLASH-8 generic-VAGRANTSLASH-rhel8
個々のVagrantボックスのサイズを確認するには、du
-h
以下のようなフラグ:
589M /home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453/libvirt 589M /home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453 589M /home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux 1.1G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2/libvirt 1.1G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2 1.1G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8 1.6G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24/libvirt 1.6G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24 1.6G /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo 1.6G /home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0/libvirt 1.6G /home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0 1.6G /home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8 998M /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4/libvirt 998M /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4 998M /home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10 628M /home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724/libvirt 628M /home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724 629M /home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8 6.4G /home/sk/.vagrant.d/boxes
合計使用量を表示するには、次を実行します:
$ du -sh ~/.vagrant.d/boxes 6.4G /home/sk/.vagrant.d/boxes
3.20。ダウンロードした.boxファイルをvagrantに追加します
多くのLinuxディストリビューションは、事前構成されたVagrantボックスを介して配布されます。そのため、vagrantボックスをすばやく取得し、それぞれの仮想化アプリケーションを使用して実行できます。詳細については、次のガイドを参照してください。
- Linuxでダウンロードした.boxファイルをVagrantに追加する方法
3.21。 Vagrantボックスを使用して仮想マシンを作成する
新しくダウンロードしたボックスを使用して新しいVMを作成するには、プロジェクトのディレクトリに移動し、次のコマンドを使用してvagrant環境を初期化します。
$ vagrant init
ヘッズアップ :新しいVagrant環境を初期化する前に、既存のVagrantfileを削除してください。
これにより、現在のディレクトリに新しいVagrantfileが作成されます。
Vagrantファイルを編集してVMの詳細を更新し、次の行を置き換えます。
Vagrant.configure("2") do |config| [...] config.vm.box = "base" [...]
次のように:
config.vm.box = "bento/debian-10.5"
次の行を追加することで、新しいVMのバージョンを明示的に指定できます。
config.vm.box = "bento/debian-10.5" config.vm.box_version = "1.0"
ダウンロードURLを指定することもできます:
config.vm.box = "bento/debian-10.5" config.vm.box_version = "1.0" config.vm.box_url = "https://app.vagrantup.com/bento/boxes/debian-10.5/"
次に、次のコマンドを使用して、このVagrantfileに基づいてVMを作成して起動します。
$ vagrant up
または、Vagrant環境を初期化するときに、ボックス名を直接指定することもできます。これは、複数のVagrantBoxがある場合に役立ちます。
まず、コマンドを使用して利用可能なvagrantボックスを一覧表示します:
$ vagrant box list
出力例:
Fedora33 (libvirt, 0) archlinux/archlinux (virtualbox, 20201201.10292) fedora33 (virtualbox, 0) generic/alpine38 (virtualbox, 3.1.16) oraclelinux/7 (virtualbox, 7.9.184) oraclelinux/8 (libvirt, 8.3.183)
「generic/alpine38」という名前のボックスから仮想マシンを作成するとします。これを行うには、次のコマンドを実行します:
$ vagrant init generic/alpine38
このコマンドは、新しいVagrantfileを作成し、指定されたボックス構成でVagrant環境を初期化します。 Vagrantfileを手動で編集してボックスの詳細を更新する必要はありません。
次に、コマンドを使用して仮想マシンを起動します:
$ vagrant up
3.22。 LibvirtKVMプロバイダーでVagrantを使用する
すでに述べたように、VagrantはデフォルトでVirtualboxを使用して仮想マシンを実行します。 Libvirt KVMなどの別のプロバイダーを使用するようにVagrantに指示することもできます。 、 vagrant-libvirtを使用してVMを実行する プラグイン。このプラグインは、LibvirtプロバイダーをVagrantに追加し、VagrantがLibvirtを介してマシンを制御およびプロビジョニングできるようにします。 libvirtをVagrantプロバイダーとして使用する方法については、次のガイドを参照してください。
- LibvirtKVMプロバイダーでVagrantを使用する方法
3.23。 Vagrantでネットワークを構成する
ゲストマシンとホストシステム間のネットワークアクセスを提供するために、Vagrantは次の3つのオプションを提供します。
- ポートフォワーディング
- プライベートネットワーク(ホストのみのネットワーク)
- パブリックネットワーク(ブリッジネットワーク)
各オプションには独自の浮き沈みがあります。次のガイドで説明されているように、Vagrantネットワークオプションのいずれかまたはすべてを構成できます。
- Vagrantでネットワークを構成する方法
3.24。ホストシステムからVagrantマシンのIPアドレスを検索する
VagrantマシンのIPアドレスを見つけるために、通常はSSHで接続し、ip
を使用してそのIPアドレスを見つけます。 またはifconfig
コマンド。次のリンクで説明されているように、実行中のVagrantマシンのIPアドレスをホストから直接取得することもできます。
- ホストからVagrantMachineIPアドレスを見つける方法
3.25。 VagrantマシンのメモリとCPUを増やす
Vagrantマシンにパフォーマンスの問題がありますか?メモリまたはCPUが不足している可能性があります。次のリンクに示すように、VagrantマシンにRAMとCPUコアを追加するだけで、パフォーマンスが向上します。
- VagrantマシンのメモリとCPUを増やす方法
3.26。古いVagrantボックスを削除する
Vagrantボックスのいくつかのバージョンをダウンロードした可能性があり、それらのいくつかはかなり古い可能性があります!不要になった場合は、次のリンクで説明されているように、インストールされている古いバージョンのVagrantボックスを安全に削除できます。
- Linuxで古いVagrantボックスを削除する方法
3.27。 Vagrantボックスを完全に削除する
hashicorp / bionic64などのvagrantボックスを削除するには、次のコマンドを実行します。
$ vagrant box remove hashicorp/bionic64
y
と入力します ENTER
を押します 削除を確認するには:
Box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox' appears to still be in use by at least one Vagrant environment. Removing the box could corrupt the environment. We recommend destroying these environments first: default (ID: 20864823c72f45568d251070b5ce2661) Are you sure you want to remove this box? [y/N] y Removing box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox'…
ボックスの名前がわからない場合は、次のコマンドを実行して、インストールされているすべてのボックスを一覧表示します。
$ vagrant box list
この段階で、Vagrantの使用法の基本を学んだはずです。 Vagrantは広大なトピックであり、今後の記事でできる限り取り上げようと思います。しばらくお待ちください!
4。 Vagrantのトラブルシューティング
このセクションでは、いくつかの一般的なVagrantの問題について説明します。
4.1。 Vagrantは非常に早い段階で初期化に失敗しました
Vagrantマシンが起動しませんでしたか?心配ない!これは、一般的な浮浪者の問題の1つです。これは、古いプラグインが原因であるか、VagrantHOMEディレクトリが別の場所に移動した可能性があります。この問題を修正するには、次のガイドを参照してください。
- Linuxで「Vagrantが非常に早い段階で初期化に失敗しました」エラーを修正する方法
4.2。ストレージファイルにアクセスできません。KVMLibvirtでアクセスが拒否されましたエラー
場合によっては、Vagrantマシンを起動せず、次のようなエラーが発生することがあります-Failed to start domain 'Archlinux_default' error: Cannot access storage file '/home/sk/.local/share/libvirt/images/Archlinux_default.img' (as uid:107, gid:107): Permission denied
。
このエラーは通常、qemu
の場合に発生します ユーザーには、Libvirtストレージディレクトリへの読み取り権限がありません。この問題を修正するには、次のガイドを参照してください。
- [解決済み]ストレージファイルにアクセスできません、KVMLibvirtでアクセスが拒否されましたエラー
5。結論
In this comprehensive guide, we learned what is Vagrant and the vagrant terminologies such as vagrant boxes, vagrantfile, and provisioning tools. We also learned how to install vagrant on Linux operating systems and finally we discussed a few basic vagrant commands to create and manage virtual machines from command line in Linux.
If you're a DevOps engineer, knowing how to use Vagrant will be very useful. Vagrant is one of the important tool that you should have on your system.