Назад | Перейти на главную страницу

Могу ли я использовать Puppet, чтобы узнать, на каких узлах не установлены инструменты VMware?

У меня есть 100 серверов с RHEL, на которых я хотел бы запускать инструменты VMware. Я написал модуль Puppet, который может устанавливать инструменты VMware, просто используя пакет {}:

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

Было бы неплохо иметь список серверов, на которых не установлен пакет vmware-tools. Как Puppet может помочь мне узнать, на каких серверах не установлены инструменты VMware?

Если вы применили этот модуль ко всем узлам, то ответ должен быть «нет». Отчет puppetmaster сообщит вам, как каждый сервер будет приведен в соответствие.

Клиент vSphere сообщит вам, на каких виртуальных машинах установлены инструменты vmware СЕЙЧАС.

Вот пример в PowerShell (с использованием VMWare PowerCLI), в котором перечислены виртуальные машины, на которых не установлены (или не установлены текущие) инструменты:

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

Да, вы можете использовать Puppet для этого ... Вы можете проверить файлы, сервис или установочный пакет. Подход PowerCLI тоже работает, но он, вероятно, менее полезен в вашей среде.

Еще одно соображение - использовать Пакеты для конкретных операционных систем VMware (OSP).

Видеть: Как убедиться, что инструменты VMware установлены и работают?

Это позволяет управлять пакетами инструментов VMware с помощью собственных RPM и YUM, в отличие от неуклюжего клиентского подхода vSphere. Вероятно, это хорошая идея для среды с таким количеством систем, которое есть у вас.

Я понимаю, что это можно истолковать как подключение моего собственного решения, но на самом деле я написал Марионеточный модуль (PuppetForge) для управления установкой VMware Tools через tarball-архив, распространяемый с vSphere / ESX, вместо использования OSP или open-vm-tools пакеты.

После использования модуля (или любого другого модуля в этом отношении) вы можете легко использовать клиент vSphere, чтобы увидеть, на какой из ваших виртуальных машин не настроены и не запущены инструменты.

Я решил работать со своими собственными фактами, чтобы проанализировать текущую настройку на нескольких серверах. Эти данные будут добываться с помощью PuppetDB и могут предоставлять красивые отчеты.

/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

Другой модуль под названием "VMTools" устанавливает rpm-пакет VMWare Tools (от RHN Satellite), если VMWare Tools не установлен. Этот же модуль обновит VMWare Tools до последней версии, если он не использует последнюю версию VMware Tools.