GNU/Linux >> Linux の 問題 >  >> Linux

Vagrantコマンドを使用してVagrantボックスを制御する方法

前回の記事では、vagrantを使用して仮想マシンを起動する方法を見てきました。この記事では、要件に応じてvagrantファイルをカスタマイズすることに焦点を当て、vagrantを操作するための重要なコマンドを確認します。

新しいVagrantプロジェクトディレクトリを作成する

新しいプロジェクトフォルダ「vagrant_testing」を作成しましょう 」とこの実行の下で、 vagrant init 新しいプロジェクトを設定するコマンド。

$ mkdir ~/vagrant_testing
$ vagrant init -m "ubuntu/focal64"

下の画像から、-mを使用して最小限の構成ファイルを作成したことがわかります。 vagrant initでフラグを立てる コマンド。

$ cat Vagrantfile

それでは、次のパラメータを変更して、vagrantファイルに追加しましょう。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box_check_update = false
  config.vm.allow_hosts_modification = true
  config.vm.define "ubuntu" do |vmbox|
		vmbox.vm.box = "ubuntu/focal64"
		vmbox.vm.define "Ubuntu"
		vmbox.vm.hostname = "shelltips-vagrant"
		vmbox.vm.network "public_network", bridge: "Intel(R) Dual Band Wireless-AC 7265", ip: "192.168.1.100"
		vmbox.vm.synced_folder ".", "/vagrant/", disabled: true
		vmbox.vm.synced_folder "/home/karthick/shelltips", "/vagrant/shelltips", disabled: false
		vmbox.vm.provider "virtualbox" do |vmvbox|
			vmvbox.memory = "2048"
			vmvbox.cpus = 2
		end
	end
end

これらすべてのパラメータの使用法について説明しましょう。

config.vm.box_check_update =false

起動中の更新チェックをオフにします

config.vm.allow_hosts_modification =true

vagrantが/etc/hostsファイルを更新できるようにする

vmbox.vm.box =" ubuntu / focus64”

ダウンロードして使用する必要のあるボックス

vmbox.vm.define“ Ubuntu”

VMの名前。名前を定義しない場合は、「デフォルト」が割り当てられます。

vmbox.vm.hostname =" shelltips-vagrant”

VMのホスト名を設定する

vmbox.vm.synced_folder。、“ / vagrant”、disabled:true

vmbox.vm.synced_folder“ / home / karthick / shelltips”、“ / vagrant / shelltips”、無効:false

同期フォルダを設定します。デフォルトの同期フォルダをオフにして、カスタマイズしたフォルダを追加します。「disabled:true/false」を設定する必要があります共有フォルダをオンまたはオフにします。

vmbox.vm.network“ public_network”、bridge:“ Intel(R)Dual Band Wireless-AC 7265」、ip:「192.168.1.100」

仮想ネットワークをブリッジアダプタモードに設定し、IPアドレスを割り当てます。Virtualboxには5つの異なるネットワークモードがあり、用途に応じて選択できます。ケース。

vmbox.vm.provider“ virtualbox” do | vmvbox |
vmvbox.memory =" 2048インチ
vmvbox.cpus=2

VMのメモリとCPUコアの定義

ここで、 vagrant upを実行すると コマンドを実行すると、vagrantファイルで宣言したカスタムパラメータに従って仮想マシンが構成されます。

SSHからVagrant仮想マシンへ

次に、仮想マシンに接続するには、「 vagrant ssh」を実行するだけです。 " 指図。複数のマシンがある場合は、IDまたは名前を使用して特定のマシンに接続できます。この情報は、グローバルステータスから取得できます。 コマンド。

$ vagrant ssh
$ vagrant ssh [id|name]

ホスト名も更新され、vagrantファイルで指定されたIPアドレスも作成されます。

$ ip a s
$ hostname

Vagrant仮想マシンが起動したら、virtualbox GUIマネージャーに移動して、すべての構成が定義された値に従っているかどうかを確認できます。

ここで、仮想マシンに対してパスワードベースの認証を有効にする場合は、VMで次のコマンドを実行します。これにより、パスワード認証がtrueに設定されます。

$ sudo sed -i "/^[^#]*PasswordAuthentication[[:space:]]no/c\PasswordAuthentication yes" /etc/ssh/sshd_config
$ sudo service sshd restart

vagrant sshを実行する代わりに 、従来のssh接続コマンドを実行できます。

$ ssh [email protected]       ⇒ Bridged Network
$ ssh vagrant@localhost -p 2222   ⇒ Nat Network

実行中のVMを停止するには、次のコマンドを実行します。

$ vagrant halt  ⇒ Gracefully shutdown the VM
$ vagrant suspend [name|id] ⇒ Put the Machine into a suspended state
$ vagrant resume [name|id] ⇒ Resume the suspended VM

これで、実行中のマシンができました。 Vagrant構成ファイルのパラメーターを突然変更することにした場合は、マシンをリロードする必要があります。

$ vagrant reload

vagrant reloadsコマンドは、VMを正常に停止し、新しい構成がある場合はVMを起動します。

VagrantBoxの更新

次のコマンドを実行して、ボックスが最新であるかどうかを確認できます。

$ vagrant box outdated --global   ==> check for an outdated version of all boxes in your machine

アップデートをダウンロードするには、次のコマンドを実行します。ここで注意すべき重要な点は、現在実行しているボックスには更新が適用されないことです。現在のボックスを破棄し、新しくダウンロードした更新されたボックスを起動する必要があります。

$ vagrant box update --box ubuntu/focal64 --provider Virtualbox

VagrantBoxを破棄する

Vagrant Boxを破棄するには、 Vagrant destroyを実行します コマンド。ディスクイメージを含むすべてのファイルを削除しますが、ダウンロードしたボックスをvagrantサイトから削除しません。

$ vagrant destroy [name|id] 

VagrantBoxを削除する

Vagrant Boxを削除するには、次のコマンドを実行します。

$ vagrant box remove ubuntu/focal64

次の記事では、シェルプロビジョナーを使用してVagrantBoxのデプロイを自動化する方法を見ていきます。


Linux
  1. Bash履歴コマンドの使用方法

  2. VagrantでLAMP開発環境をセットアップする方法

  3. シェルスクリプトを使用してgnuplotでコマンドを実行する方法は?

  1. LinuxにVagrantをインストールする方法

  2. niceおよびreniceコマンドを使用してLinuxプロセスの優先度を設定する方法

  3. bashコマンドを使用してフォルダを一覧表示するには?

  1. VirtualBoxを使用してVagrantCentOS7を作成する方法

  2. auditd を使用して OEL 5,6 で実行されるすべてのコマンドを監査する方法

  3. 検索を使用するときに複数のコマンドを実行するにはどうすればよいですか?