WindowsのVargrantでCentOSを起動する
環境は以下です。
- Windows10
- VirtualBox 5.2.12
- Vargrant 2.1.1
- CentOS7
VirtualBoxのインストール
以下のサイトから、Windows用のVirutalBoxのモジュールを持ってきてインストール。
Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle
Vargrantのインストール
以下のサイトから、Windows用のVargrantのモジュールを持ってきてインストール。
Download - Vagrant by HashiCorp
事前確認
何もしないで vagrant up
をすると、以下のエラーで起動できないことがあるので確認。
VT-x/AMD-V hardware acceleration is not available on your system.
(1) CPUのVT-x機能を有効化する
VT-x
とはintelの仮想化支援技術とのことで、これを有効化しておく必要があるらしい。BIOSから変更できるので、BIOS画面を表示させて変更。ノートパソコンでは無効になっていることが多いらしく、BIOS画面でセキュリティの項目を確認する。
(2) Hyper-V機能を無効化
Hyper-VもVT-xの機能を利用しているらしく、Hyper-Vが有効になっているとVT-xの機能をうばってしまうらしい。
「コントロールパネル」-「プログラム」-「Windowsの機能の有効化または無効化」で表示された画面より、Hyper-Vのチェックボックスを外す。
ゲストOS(CentOS7)の作成
(1) init処理を実施して、Vagrantfileを作成
今回はVagrantCloudにあるbentoプロジェクト内から、CentOS7.5用のboxをダウンロードする。
> vagrant init bento/centos-7.5
(2) 作成されたVagrantfileから、必要に応じ編集。
今回は以下の通り。
Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7.5" config.vm.network "private_network", ip: "192.168.33.10" config.ssh.insert_key = false config.vm.provider "virtualbox" do |vm| vm.memory = 4096 end end
config.ssh.insert_key = false
を設定しない場合、vagrant upをした際に、以下のようなワーニングが出てきます。
default: Warning: Remote connection disconnect. Retrying... default: Warning: Connection aborted. Retrying... default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default:
Vagrantでは、boxに入っていた秘密鍵が安全なものでないと判断された場合、秘密鍵を自動的に作り直す処理をするようです。で、 Vagrant ssh
の際に利用される秘密鍵は、その作り変えられた秘密鍵とは異なる、Vagrantインストール時に作成された鍵を利用するため、鍵の不一致が発生してしまう、とのこと。上記のコンフィグを指定することで、鍵の再作成はしないらしい。
Vagrant ssh
時に利用される鍵については、以下のコマンドで確認可能。
> vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile C:/Users/XXXXX/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL
(3) ゲストOSを作成
> vagrant up
結構しんどかった。