LoginSignup
11
11

More than 3 years have passed since last update.

vagrant-vmware-esxiでVMware ESXiのみの環境をコントロールする

Posted at

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
Vagrantfile
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のクローンを作成することも出来るらしいが今回はやっていないのでまた試してみたい。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11