インストール - Vagrant
概要
Vagrantfileとは、仮想マシンの構築設定などを記述するためのファイルである。
例えば、"仮想マシンはCeontOS 7をインストールする"、"IPアドレスを192.168.10.10にする"等である。
Vagrantfileは、以下のような特徴がある。
- 仮想マシンの基本設定を記述できる。
- ファイルなので共有が簡単。
- 環境構築手順ファイルを呼び出せる。
- Ruby言語で記述する。
Vagrantのコマンドを実行する時、自動的にVagrantfileが読み込まれて、記述内容にしたがって仮想マシンが構築される仕組みである。
Vagrantfileは一般的なファイルなので、多くのユーザに共有することもできる。
また、仮想マシンの構築後に必要なパッケージをインストールする場合、別ファイルに詳細な手順を記述して、Vagrantfileから呼び出すこともできる。
依存関係のライブラリのインストール
Vagrantの依存関係のライブラリをインストールするため、以下のライブラリをインストールする。
以下のライブラリが無い場合、vagrant box add
コマンドが失敗する可能性がある。
sudo zypper install bsdtar
Vagantのインストール
バイナリファイルからインストール
- まず、Vagrantの公式Webサイトにアクセスして、各プラットフォーム向けのVagrantをダウンロードする。
- Vagrantを以下の手順に従ってインストールする。
- RPMを使用する場合
- ダウンロードしたRPMファイルに対して、以下のコマンドを実行する。
sudo rpm -Uvh vagrant-<バージョン>.x86_64.rpm
- AppImageを使用する場合
- ダウンロードしたファイルを解凍する。
unzip vagrant_<バージョン>_linux_amd64.zip
- 解凍したAppImageファイルのフルパスを、.profileファイル等に環境変数PATHを記述する。
vi ~/.profile
~/.profileファイル
export PATH="<VagrantのAppImageファイルのパス>:$PATH"
- Windows
- ダウンロードしたVagrantのインストーラを起動して、手順にしたがってインストールする。
- RPMを使用する場合
- PCを再起動する。
ソースコードからインストール
ソースコードからVagrantをインストールする場合、公式インストーラが使用できない場合にのみ推奨する。
ソースコードからVagrantをインストールするための前提条件と3つのステップについて以下に示す。
- Rubyをインストールする。
- Vagrantをクローンする。
- ローカルで設定する。
まず、Rubyをインストールする。
Vagrantをビルドするには、特定のバージョンのRubyをインストールする必要がある。
必要なRubyのバージョンは、VagrantのGithubにあるvagrant.gemspecに記載されている。
また、Vagrantをソースコードからインストールする場合は、プラグインの互換性にも注意する必要がある。
Vagrantのプラグインは現在の環境に基づいて設定されるため、ソースコードからVagrantでインストールしたプラグインは、パッケージベースのVagrantインストールでは動作しないことに注意する。
sudo zypper install make gcc ruby rubygem-bundler nodejs libopenssl-devel sqlite3-devel
次に、Vagrantのソースコードをクローンする。
git clone https://github.com/hashicorp/vagrant.git
次に、クローンしたVagrantパスを~/.profileファイル等に環境変数PATHを設定する。
vi ~/.profile
# ~/.profileファイル
export PATH="<Vagrantのパス>:$PATH"
必要なライブラリおよびプラグインをインストールする。
cd <Vagrantのパス> bundle install
bundle
コマンドを実行して、Vagrantを起動する。
bundle exec vagrant
Vagrant VMwareのインストール
Vagrant VMware WorkstationまたはVagrant VMware Fusionプラグインからアップグレードする場合、Vagrantで管理している全てのVMware上の仮想マシンを停止または破棄する。
その後、以下の手順に従う。
Vagrant VMwareプロバイダのインストールには2つのステップが必要である。
まず、Vagrant VMwareユーティリティをインストールする。
これは、Vagrant VMwareユーティリティの公式Webサイトから、RPMファイルをダウンロードしてインストールする。
sudo zypper install ./vagrant-vmware-utility-<バージョン>.x86_64.rpm
次に、Vagrant VMwareプロバイダプラグインを標準のプラグインインストール手順でインストールする。
vagrant plugin install vagrant-vmware-desktop
プラグインのインストールについて詳細を知りたい場合は、Vagrantプラグインの公式Webドキュメントを参照すること。
Vagrant VMware Desktopプラグインをアップデートする場合は、Vagrantから直接アップデートすることができる。
vagrant plugin update vagrant-vmware-desktop
Vagrantの使用方法
Vagrantfileを作成
ターミナルを起動して、以下のコマンドを実行する。
vagrant init
Vagrantfileの設定
Vagrantfileをテキストエディタで開く。
以下に、Vagrantfileの設定例を示す。
以下の例では、CeontOS 7をインストールしているので、config.vm.box = "centos/7"
と記述している。
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centos/7" config.vm.network :private_network, ip: "192.168.33.10" config.vm.provider "virtualbox" do |vb| vb.name = "training" vb.gui = false vb.memory = "2048" end config.ssh.private_key_path = "<SSHの暗号鍵ファイルのフルパス>" config.ssh.insert_key = false if Object.const_defined? 'VagrantVbguest' config.vbguest.auto_update = false config.vbguest.no_remote = true end end
仮想マシンの作成
boxファイルから仮想マシンを作成する場合、以下のコマンドを実行する。
box名は、Vagrantfileファイルに記述したconfig.vm.box = <box名>
のbox名を入力する。
vagrant box add <box名> <boxファイルのパス>
仮想マシンの起動
上記の手順により、Vagrantを起動する準備が整う。
ターミナルから以下のコマンドを実行して、仮想マシンを作成する。
vagrant up
vagrant up
は、Vagrantfileの内容にしたがって仮想マシンを構築して起動する。
この時、バックグラウンドではVirturalBoxが起動して、仮想マシンの作成が開始する。
vagrant up
は、実行するタイミングにより動作が変化するので注意すること。
初回は、仮想マシンの構築と起動を行うが、2回目以降は仮想マシンの起動のみとなる。
ただし、2回目以降もVagrantfileが読み込まれていることは覚えておくこと。
- 仮想マシンを構築して起動(初回のみ)
- 仮想マシンを起動(2回目以降)
仮想マシンにログイン
仮想マシンの起動後、以下のコマンドを実行して、仮想マシンにログインする。
vagrant ssh
これにより、仮想マシンにおいて、vagrantユーザでログインできる。
また、vagrantユーザは標準で作成される。
仮想マシンからログアウト
仮想マシンからログアウトする場合は、[Ctrl] + [d]キーを同時押下、または、以下のコマンドを実行する。
exit
仮想マシンの停止
仮想マシンを停止する場合は、以下のコマンドを実行する。
vagrant halt
仮想マシンの削除
仮想マシンを削除する場合は、以下のコマンドを実行する。
vagrant box remove -f <box名> または vagrant destroy または vagrant destroy <box名>
vagrant destroy
コマンドを実行しても、.vagrantディレクトリやVagrantfileファイルは残る。
この設定ファイルには、以前、vagrant box addしたbox情報が記述されている。
vagrant destroy
コマンドは、仮想マシンを削除する以外にも、仮想マシンを再作成する場合にも使用する。
box名の変更
boxの実体ファイルをリネームするだけでbox名を変更することができる。
boxの実体ファイルは、$HOME/.vagrant.d/boxesに存在する。
mv ~/.vagrant.d/boxes/<boxのファイル名> ~/.vagrant.d/boxes/<boxの新しいファイル名>
次に、vagrant init
コマンドを実行して、新しいbox名を指定する。
vagrant init <boxの新しいファイル名>