No description
  • Go 40.1%
  • Ruby 36.8%
  • Shell 21.1%
  • PowerShell 1.5%
  • Makefile 0.3%
  • Other 0.1%
Find a file
Taru Garg 3b57f4a979
Merge pull request #172 from hashicorp/compliance/update-headers-batch-1
[IND-4227] [COMPLIANCE] Update Copyright Headers (Batch 1 of 1)
2026-01-13 11:15:25 +05:30
.ci Terraform managed file 2025-04-03 18:02:17 -07:00
.github Update GitHub Actions Ruby setup versions 2026-01-13 10:53:00 +05:30
build [COMPLIANCE] Add Copyright and License Headers 2023-02-27 16:42:19 +00:00
go_src/vagrant-vmware-utility [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
lib [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
locales [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
package [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
spec [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
tasks Initial commit 2021-06-09 07:47:47 -05:00
versions Update plugin version and changelog for dev 2025-04-18 10:44:46 -07:00
.gitignore Remove old entries and add ./bin/* 2023-02-13 15:42:31 -08:00
.mise.toml Bump go version to 1.24 and add Ruby 3.4 to tests 2025-04-11 16:24:24 -07:00
CHANGELOG-plugin.md Update plugin version and changelog for dev 2025-04-18 10:44:46 -07:00
CHANGELOG-utility.md Update changelog for dev 2025-04-18 09:45:16 -07:00
Gemfile [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
go.mod Update go modules 2025-04-15 16:36:00 -07:00
go.sum Update go modules 2025-04-15 16:36:00 -07:00
LICENSE [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
Makefile Add makefile for building bins 2023-02-13 15:42:31 -08:00
Rakefile Bump go version to 1.24 and add Ruby 3.4 to tests 2025-04-11 16:24:24 -07:00
README.md Fix minor README.md typo 2023-07-31 07:46:46 -05:00
RELEASE.md Remove release information from README 2021-10-29 17:17:14 -07:00
vagrant-spec.config.rb [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) 2025-12-08 18:39:28 +00:00
vagrant-vmware-desktop.gemspec Bump go version to 1.24 and add Ruby 3.4 to tests 2025-04-11 16:24:24 -07:00
Vagrantfile Initial commit 2021-06-09 07:47:47 -05:00
VNETLIB.md Initial commit 2021-06-09 07:47:47 -05:00

Vagrant VMware Desktop Providers

This is the common codebase for the official providers for VMware desktop products: Fusion, Player, and Workstation. This therefore works on Windows, Mac, and Linux.

Box Format

All the desktop plugins share a common box format known as vmware_desktop. The plugins also all support the formats vmware_fusion, vmware_workstation, and vmware_player.

Developing

There are two separate parts which work together to provide the vagrant-vmware-desktop functionality. The first is the vagrant-vmware-desktop RubyGem. This does the bulk of the work for the plugin. The second part is a vagrant-vmware-utility service that the vagrant-vmware-desktop plugin interacts with. The purpose of this part of the plugin is to do operations which require privleged access on the host. This includes network operations and verification of fusion/workstation.

RubyGem - Desktop plugin

Using bundler allows for local development. If you need to test the RubyGem plugin on another system you can build a gem by building directly:

gem build vagrant-vmware-desktop.gemspec

Utility Service

This part of the plugin lives in the go_src directory and is required to be running when using the vagrant-vmware-desktop plugin. To build and start it:

Linux / macOS

cd go_src/vagrant-vmware-utility
go build
./vagrant-vmware-utility certificate generate
sudo ./vagrant-vmware-utility api

Windows

In a user console, run:

cd go_src\vagrant-vmware-utility
go build
.\vagrant-vmware-utility certificate generate

In an administrator console, run:

cd go_src\vagrant-vmware-utility
.\vagrant-vmware-utility api

Certificates

The plugin interacts with the utility service via a REST API. The utility service creates these certificates with the certificate generate command:

./vagrant-vmware-utility certificate generate

This will output the path to certificates directory. Because a development build is in use, the plugin will be unable to locate the certificates to communicate with the API. The plugin can be configured with the directory path:

Vagrant.configure("2") do |config|
  config.vm.provider :vmware_desktop do |vmware|
    vmware.utility_certificate_path = "PATH"
  end
end

Another option is to link the certificates directory to the location the plugin expects to find them:

$ sudo mkdir /opt/vagrant-vmware-desktop
$ sudo ln -s PATH /opt/vagrant-vmware-desktop/certificates