Posso usar o Puppet para descobrir quais nós não possuem ferramentas VMware instaladas?

2

Eu tenho 100 servidores com RHEL que gostaria de executar ferramentas VMware. Eu escrevi um módulo Puppet que pode instalar ferramentas VMware, usando apenas o pacote {}:

package { 'vmware-tools-esx-nox':
    ensure => installed,
}

Seria bom ter uma lista de servidores que não possuam o pacote vmware-tools instalado. Como o Puppet pode me ajudar a descobrir quais servidores não possuem o VMware Tools instalado?

    
por ujjain 13.09.2013 / 11:24

4 respostas

0

Eu decidi trabalhar com meus próprios fatos personalizados para analisar a configuração atual em vários servidores. Esses dados serão extraídos com o PuppetDB e podem fornecer relatórios bonitos.

/etc/puppet/modules/facter/lib/facter/extra_info.rb:

# vmware installed?
Facter.add("vmtools_installed") do
  setcode do
    File.exists?('/usr/bin/vmware-toolbox-cmd')
  end
end

# vmware-running?
Facter.add("vmtools_version") do
  setcode do
    Facter::Util::Resolution::exec('/usr/bin/vmware-toolbox-cmd -v')
  end
end

Outro módulo chamado "VMTools" instala o pacote rpm do VMWare Tools (do RHN Satellite) se o VMWare Tools não estiver instalado. O mesmo módulo atualizará as Ferramentas VMWare para o pacote mais recente, se não estiver executando a versão mais recente do VMware Tools.

    
por 07.10.2013 / 17:10
2

Se você aplicou esse módulo a todos os nós, então a resposta deve ser 'none'. O relatório do puppetmaster irá dizer-lhe como cada servidor é colocado em conformidade.

O cliente vSphere dirá quais VMs possuem as ferramentas VMware instaladas AGORA.

Veja uma amostra no PowerShell (usando o PowerCLI da VMWare), listando as VMs que não têm nenhuma (ou nenhuma ferramenta atual) instalada:

get-VM | Get-View | '
   ? { $_.Guest.ToolsStatus -match "toolsNotInstalled" -or '
      $_.Guest.ToolsVersionStatus -ne "guestToolsCurrent" } | '
   select Name, '
      @{Name="Status"; Expression={$_.Guest.ToolsStatus}}, '
      @{Name="Version"; Expression={$_.Guest.ToolsVersionStatus}} | '
   format-table
    
por 13.09.2013 / 11:36
0

Sim, você pode usar o Puppet para isso ... Você pode verificar arquivos ou o serviço ou pacote de instalação. A abordagem do PowerCLI também funciona, mas provavelmente é menos útil em seu ambiente.

Outra consideração é usar os Pacotes específicos do sistema operacional VMware (OSPs).

Veja: Como tenho certeza de que o VMware Tools está instalado e em execução?

Isso permite que você gerencie os pacotes de ferramentas do VMware com RPMs e YUM nativos, em comparação com a desajeitada abordagem do cliente vSphere. Provavelmente é uma boa ideia para um ambiente com o número de sistemas que o seu possui.

    
por 13.09.2013 / 15:49
0

Eu sei que isso pode ser entendido como uma solução própria, mas na verdade eu escrevi um módulo Puppet ( PuppetForge ) para controlar as instalações do VMware Tools através do arquivo tarball distribuído com o vSphere / ESX, em vez de usar o OSP ou open-vm-tools pacotes.

Depois de usar o módulo (ou qualquer outro módulo), você pode facilmente usar o cliente vSphere para ver quais de suas VMs não têm as ferramentas configuradas e em execução.

    
por 29.09.2013 / 01:02

Tags