今日は後編です。と言っても、昨日の分でほぼ書いてしまったので、書ききれなかったこととか補足とかを今日は書いてみようと思います。 前編はこちらです。
使うことができるboxについて
今回の手順で作られたVagrant + KVM環境は、Libvirtプロバイダーで動いているため、Libvirtdで実行できるboxイメージでないと動きません。過去にKVMプロバイダーと言うものがあり、これ用に作られたboxイメージが現存しますが、今回の環境では動かすことができませんでした。
Libvirt用イメージは次のURLで見つけることができます。
Discover Vagrant Boxes | Atlas by HashiCorp
Ubuntuは公式のものはVirtualBox向けしかないため、例えばこれが使えます。
Vagrant box matjazp/ubuntu-trusty64 | Atlas by HashiCorp
Debianは次のイメージが使えます。
Vagrant box debian/jessie64 | Atlas by HashiCorp
CentOSは6と7向けのboxが公式配布されています。
http://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7.LibVirt.box http://cloud.centos.org/centos/6/vagrant/x86_64/images/CentOS-6.LibVirt.box
Fedoraの場合は下記の配布サイトからダウンロードできます。
私が確認したのはざっとこの辺りです。
仮想マシンへのログイン
Vagrantでデプロイした仮想マシンへはvagrant ssh
でログインできます。新しいユーザーを作れば、そのユーザーで通常のようにsshコマンドを使ってログインも可能です。ただし、Vagrantfileにpublic_networkの設定を行っておく必要があります。
IPアドレスの設定変更と再起動
仮想マシンを起動したあと、IPアドレスを変えて再起動みたいな流れを行うと思います。 KVMのVMの取り扱うように操作可能ですが、一番簡単なのは次のような感じです。
IPアドレスの設定変更
固定IPアドレスを設定したい場合はeth1側を変更します。これを行えるようにするため、Vagrantfileにpublic_networkの設定を行ってください。
config.vm.network "public_network"
IPアドレスはDebian/Ubuntuなら/etc/network/interfaces、CentOS/Fedoraなら/etc/sysconfig/network-scriptsのしたのファイルをいつものように変更してください。CentOS 7/Fedoraならnmcliコマンドを使ってIPアドレスの設定をするのも割と容易にできます。再起動すると新しいIPアドレスに書き換わります。コマンド一行で済むので、ファイルを開いてviで編集するより効率的ですよね。
vm# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.1.250/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
ホスト名の変更
ホスト名の変更は/etc/hostnameを変更しますが、nmcliコマンドでも変更が可能です。
# nmcli general hostname my-server1 # systemctl restart systemd-hostnamed
仮想マシンの再起動
仮想マシンを再起動するには、仮想マシンからログアウトして、ホスト場でvagrant reload
を実行します。
vm# exit host# vagrant reload
仮想マシンでNested VMを提供する
仮想マシンでNested VMを提供する、つまり仮想マシン内で仮想マシンを実行するには仮想化ホストで設定変更が必要です。今回仮想化ホストとしてCentOS 7を使っているので、次のように設定すると利用可能になります。再起動は不要です。
パラメータの追記
host# vi /etc/modprobe.d/kvm-nested.conf options kvm_intel nested=1
モジュールのロード
# 一旦アンロード host# modprobe -r kvm_intel # ロードし直す host# modprobe kvm_intel # Nested KVMが有効になった host# cat /sys/module/kvm_intel/parameters/nested Y
まとめ
Vagrantを使うとOSのインストールの手間の削減、ある程度のパッケージインストールや初期設定の自動化ができて便利です。VagrantはOSのデプロイまでにして、Ansibleなどでセットアップするもよしと言う感じです。 これで動作確認用のサーバーとして使えますね。