virtualization resource

[edit on GitHub]

Use the virtualization Chef InSpec audit resource to test the virtualization platform on which the system is running.

Availability

Installation

This resource is distributed along with Chef InSpec itself. You can use it automatically.

Version

This resource first became available in v1.28.0 of InSpec.

Syntax

An virtualization resource block declares the virtualization platform that should be tested:

describe virtualization do
  its('system') { should MATCHER 'value' }
end

where

  • ('system') is the name of the system information of the virtualization platform (e.g. docker, lxc, vbox, kvm, etc)
  • MATCHER is a valid matcher for this resource
  • 'value' is the value to be tested

Examples

The following examples show how to use this Chef InSpec audit resource.

Test for Docker

describe virtualization do
  its('system') { should eq 'docker' }
end

Test for VirtualBox

describe virtualization do
  its('system') { should eq 'vbox' }
  its('role') { should eq 'guest' }
end

Detect the virtualization platform

if virtualization.system == 'vbox'
  describe package('name') do
    it { should be_installed }
  end
end

Matchers

For a full list of available matchers, please visit our matchers page.

virtualization.virtual_system? Helper

This helper returns, if any of the supported virtualization platforms was detected and the machine under test is a guest. You can use this in a only_if { virtual_system? } clause to execute test only on virtualized systems.

virtualization.physical_system? Helper

If no virtualization platform is detected, this will return true. For unsupported virtualization platforms this can result in false posititves.

virtualization.system names

The resource supports the following virtualization platforms:

On Linux machines:

  • docker (guest role only)
  • hyper-v (guest role only)
  • kvm
  • linux vserver
  • lxc / lxd
  • openstack (host role only)
  • openvz
  • parallels (guest role only)
  • virtualbox
  • vmware (guest role only)
  • xen

On Windows machines (guest role only)

  • hyper-v
  • kvm
  • vmware
  • virtualbox
  • xen

virtualization.role

Can be either

  • guest
  • host

Please see the documentation on virtualization.system to check supported roles per platform.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/virtualization/