Puppet and PowerCLI
Puppet (http://www.puppet.com) is a popular configuration management platform used to ensure that managed nodes are configured to the desired state. PowerCLI (https://www.vmware.com/support/developer/PowerCLI/) is a Windows based tool for interacting with VMware vSphere.
This post will cover installing VMware PowerCLI on a Windows Server 2012 machine utilizing Puppet.
# init.pp
class powercli {
File['Deploy PowerCLI'] ~>
Exec['Stop Internet Explorer'] ->
Pakcage['VMware vSphere PowerCLI']
# Deploy the PowerCLI executable from the Puppet Master
file { 'Deploy PowerCLI':
ensure => present,
path => 'C:TempPowerCLI.exe',
source => 'puppet:///modules/powercli/PowerCLI.exe',
}
# Ensure that any instance of Internet Explorer is stopped
exec { 'Stop Internet Explorer':
command => 'stop-process -name iexplore',
refreshonly => true,
provider => powershell,
}
# Install PowerCLI
package { 'VMware vSphere PowerCLI':
ensure => installed,
source => 'C:TempPowerCLI.exe',
install_options => ['/S','/V" /qn /L*v C:PowerCLI.log REBOOT=ReallySuppress"'],
}
}
The module is composed of the main init.pp manifest which handles the installation and configuration as well as the actual PowerCLI executable in the files directory.
powercli
├── files
│ └── PowerCLI.exe
└── manifests
└── init.pp