Module: ChefUtils::DSL::Virtualization

Extended by:
Virtualization
Includes:
Internal
Included in:
ChefUtils, Virtualization
Defined in:
lib/chef-utils/dsl/virtualization.rb

Instance Method Summary collapse

Instance Method Details

#guest?(node = __getnode) ⇒ Boolean Also known as: virtual?

Determine if the current node is running under any virtualization environment

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



194
195
196
# File 'lib/chef-utils/dsl/virtualization.rb', line 194

def guest?(node = __getnode)
  node.dig("virtualization", "role") == "guest"
end

#hypervisor?(node = __getnode) ⇒ Boolean

Determine if the current node supports running guests under any virtualization environment

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



208
209
210
# File 'lib/chef-utils/dsl/virtualization.rb', line 208

def hypervisor?(node = __getnode)
  node.dig("virtualization", "role") == "host"
end

#kvm?(node = __getnode) ⇒ Boolean

Determine if the current node is a KVM guest.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



33
34
35
# File 'lib/chef-utils/dsl/virtualization.rb', line 33

def kvm?(node = __getnode)
  node.dig("virtualization", "system") == "kvm" && node.dig("virtualization", "role") == "guest"
end

#kvm_host?(node = __getnode) ⇒ Boolean

Determine if the current node is a KVM host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



44
45
46
# File 'lib/chef-utils/dsl/virtualization.rb', line 44

def kvm_host?(node = __getnode)
  node.dig("virtualization", "system") == "kvm" && node.dig("virtualization", "role") == "host"
end

#lxc?(node = __getnode) ⇒ Boolean

Determine if the current node is running in a linux container.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



55
56
57
# File 'lib/chef-utils/dsl/virtualization.rb', line 55

def lxc?(node = __getnode)
  node.dig("virtualization", "system") == "lxc" && node.dig("virtualization", "role") == "guest"
end

#lxc_host?(node = __getnode) ⇒ Boolean

Determine if the current node is a linux container host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



66
67
68
# File 'lib/chef-utils/dsl/virtualization.rb', line 66

def lxc_host?(node = __getnode)
  node.dig("virtualization", "system") == "lxc" && node.dig("virtualization", "role") == "host"
end

#openvz?(node = __getnode) ⇒ Boolean

Determine if the current node is an openvz guest.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



172
173
174
# File 'lib/chef-utils/dsl/virtualization.rb', line 172

def openvz?(node = __getnode)
  node.dig("virtualization", "system") == "openvz" && node.dig("virtualization", "role") == "guest"
end

#openvz_host?(node = __getnode) ⇒ Boolean

Determine if the current node is an openvz host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



183
184
185
# File 'lib/chef-utils/dsl/virtualization.rb', line 183

def openvz_host?(node = __getnode)
  node.dig("virtualization", "system") == "openvz" && node.dig("virtualization", "role") == "host"
end

#parallels?(node = __getnode) ⇒ Boolean

Determine if the current node is running under Parallels Desktop.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

    true if the machine is currently running under Parallels Desktop, false otherwise

Since:

  • 15.8



79
80
81
# File 'lib/chef-utils/dsl/virtualization.rb', line 79

def parallels?(node = __getnode)
  node.dig("virtualization", "system") == "parallels" && node.dig("virtualization", "role") == "guest"
end

#parallels_host?(node = __getnode) ⇒ Boolean

Determine if the current node is a Parallels Desktop host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

    true if the machine is currently running under Parallels Desktop, false otherwise

Since:

  • 15.8



92
93
94
# File 'lib/chef-utils/dsl/virtualization.rb', line 92

def parallels_host?(node = __getnode)
  node.dig("virtualization", "system") == "parallels" && node.dig("virtualization", "role") == "host"
end

#physical?(node = __getnode) ⇒ Boolean

Determine if the current node is NOT running under any virtualization environment (bare-metal or hypervisor on metal)

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



219
220
221
# File 'lib/chef-utils/dsl/virtualization.rb', line 219

def physical?(node = __getnode)
  !virtual?(node)
end

#vagrant?(node = __getnode) ⇒ Boolean

Determine if the current node is running as a vagrant guest.

Note that this API is equivalent to just looking for the vagrant user or the vagrantup.com domain in the hostname, which is the best API we have.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

    true if the machine is currently running vagrant, false otherwise

Since:

  • 15.8



235
236
237
# File 'lib/chef-utils/dsl/virtualization.rb', line 235

def vagrant?(node = __getnode)
  vagrant_key?(node) || vagrant_domain?(node) || vagrant_user?(node)
end

#vbox?(node = __getnode) ⇒ Boolean Also known as: virtualbox?

Determine if the current node is a VirtualBox guest.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



103
104
105
# File 'lib/chef-utils/dsl/virtualization.rb', line 103

def vbox?(node = __getnode)
  node.dig("virtualization", "system") == "vbox" && node.dig("virtualization", "role") == "guest"
end

#vbox_host?(node = __getnode) ⇒ Boolean

Determine if the current node is a VirtualBox host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



114
115
116
# File 'lib/chef-utils/dsl/virtualization.rb', line 114

def vbox_host?(node = __getnode)
  node.dig("virtualization", "system") == "vbox" && node.dig("virtualization", "role") == "host"
end

#vmware?(node = __getnode) ⇒ Boolean

Determine if the current node is a VMWare guest.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



128
129
130
# File 'lib/chef-utils/dsl/virtualization.rb', line 128

def vmware?(node = __getnode)
  node.dig("virtualization", "system") == "vmware" && node.dig("virtualization", "role") == "guest"
end

#vmware_desktop?(node = __getnode) ⇒ Boolean

Determine if the current node is virtualized on VMware Desktop (Fusion/Player/Workstation).

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 17.9



150
151
152
# File 'lib/chef-utils/dsl/virtualization.rb', line 150

def vmware_desktop?(node = __getnode)
  node.dig("virtualization", "system") == "vmware" && node.dig("vmware", "host", "type") == "vmware_desktop"
end

#vmware_host?(node = __getnode) ⇒ Boolean

Determine if the current node is VMware host.

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 15.8



139
140
141
# File 'lib/chef-utils/dsl/virtualization.rb', line 139

def vmware_host?(node = __getnode)
  node.dig("virtualization", "system") == "vmware" && node.dig("virtualization", "role") == "host"
end

#vmware_vsphere?(node = __getnode) ⇒ Boolean

Determine if the current node is virtualized on VMware vSphere (ESX).

Parameters:

  • node (Chef::Node) (defaults to: __getnode)

Returns:

  • (Boolean)

Since:

  • 17.9



161
162
163
# File 'lib/chef-utils/dsl/virtualization.rb', line 161

def vmware_vsphere?(node = __getnode)
  node.dig("virtualization", "system") == "vmware" && node.dig("vmware", "host", "type") == "vmware_vsphere"
end