vagrant-vsphereだとvCenterサーバーが必要なので単純にESXiのみをvagrantから操作できないかなぁと調べたらあったので使ってみた。因みにESXi、vagrant共に触れ始めなので色々知識不足なのはすみません。
vagrant-vmware-esxiとは
This is a Vagrant plugin that adds a VMware ESXi provider support. This allows Vagrant to control and provision VMs directly on an ESXi hypervisor without a need for vCenter or VShpere. ESXi hypervisor is a free download from VMware!
Not everyone has vCenter / vSphere... vCenter cost $$$. ESXi is free! Using this plugin will allow you to use a central VMware ESXi host for your development needs. Using a centralized host will release the extra load on your local system (vs using KVM or Virtual Box). GitHub
コストフリーなESXiのみの環境でも快適にコントロールしたいというのが伝わります。
vagrant環境にあるboxファイルを変換してESXiにネットワーク越しに送信し、自動でVMを作成してくれるプラグイン。
##構築環境
- サーバー:ESXi 3.7
- SSH接続の許可が必要
- vagrantを動かすホスト:macOS Mojave 10.14.6
- Vagrant 2.2.5
- vagrant-vmware-esxi 2.4.4
##構築手順
vagrant-vmware-vsphereのインストール
vagrant plugin install vagrant-vmware-vsphere
VMWare OVF Toolのインストール
VMWare OVF Tool
上記リンクからダウンロード、インストールをしてPATHを通す。
export PATH=$PATH:/Applications/VMware\ OVF\ Tool/
source ~/.bash_profile
###Vagrantfileの編集
適当なディレクトリにVagrantfileを作成し編集する。
mkdir hoge
cd hoge
vagrant init
Vagrant.configure('2') do |config|
# 対応Ploviderにvmwareがあるboxだけが使えます。
config.vm.box = 'generic/centos7'
# ホスト/ゲスト間でのファイル共有を使う際はtypeにrsyncかnfsで指定。
config.vm.synced_folder('.', '/vagrant', type: 'nfs')
config.vm.provider :vmware_esxi do |esxi|
# 必須:ESXiのhostnameかIPアドレス
esxi.esxi_hostname = 'esxi'
# 必須:ESXiのusername
esxi.esxi_username = 'root'
# 必須:ESXiのパスワードは
# 1. 'prompt:'→プロンプト上で入力
# 2. 'file:','file:my_secret_file'→パスワードが平文で保存されているファイルを指定
# 3. 'env:','env:my_secret_env_var'→パスワードが平文で保存されている環境変数を指定
# 4. 'key:','key:~/.ssh/some_ssh_private_key'→SSHの公開鍵認証のファイルを指定
# 5. esxi.esxi_password = 'my_esxi_password'→Vagrantfile上に平文での記入
# から選べる。(セキュリテイ上4.が無難かと……)
esxi.esxi_password = 'prompt:'
# 必須:SSHポート番号
esxi.esxi_hostport = 22
# 接続するポートグループ
esxi.esxi_virtual_network = 'VM Network'
# 作成先のデータストア
esxi.esxi_disk_store = 'datastore1'
# 作成するVMの名前
# 指定しないと自動で生成される
esxi.guest_name = 'Custom-Guest-VM_Name'
# VMのゲストユーザーの名前、デフォルトは'vagrant'
esxi.guest_username = 'vagrant'
# メモリ
esxi.guest_memsize = '2048'
# CPU数
esxi.guest_numvcpus = '2'
end
end
特に詳細な設定は必要なかったので自分の場合はこれぐらいで十分だった。
##VMの起動
Vagrantfileがあるディレクトリで
vagrant up
を実行すると、boxをダウンロードし変換、ESXiに送信してVMとして登録して起動してくれる。
もちろんdestroyでVMの削除も行なえる上snapshotも作成できる。
##リンク
GitHub
Wiki - GitHub
他のVMのクローンを作成することも出来るらしいが今回はやっていないのでまた試してみたい。