Встановлення відкритих vm-інструментів в Ubuntu через Puppet; що меншого зла?


9

В ідеальному світі налаштування маріонетки для встановлення open-vm-toolsмає бути таким же простим:

class vm-tools {
    package { 'open-vm-tools':
        ensure => installed
    }
    package { 'open-vm-dkms':
        ensure => installed
    }
}

Але це відкриває некрасиву консервну залежність; він встановлює X, який, очевидно, не належить до серверів. За станом на Ubuntu 10.04, ці пакети в кінцевому підсумку рекомендують open-vm-toolboxпакет інструментів GUI:

# apt-cache depends open-vm-dkms
open-vm-dkms
  Depends: dkms
  Depends: make
  Suggests: open-vm-toolbox
  Recommends: open-vm-tools

# apt-cache depends open-vm-tools
open-vm-tools
  Depends: libc6
  Depends: libfuse2
  Depends: libgcc1
  Depends: libglib2.0-0
  Depends: libicu44
  Depends: libstdc++6
  Recommends: open-vm-source
  Recommends: open-vm-toolbox
  Recommends: ethtool
  Recommends: zerofree

Рекомендовані пакети завжди встановлюються за замовчуванням. Очевидно не бажано встановлювати залежності X за замовчуванням при установці пакету, який описаний як "Інструменти CLI".

Запит функції проти Debian був негайно відкинуто з цієї причини, але голови кулер не превалюють в Ubuntu . Здається, що протягом останнього тижня існує деяке визнання, що це була необдумана зміна , але це не допоможе, поки наступний реліз LTS не розгорнуться.

Поведінка для встановлення рекомендованих пакетів досить легко відключити в командному рядку з --no-install-recommendsможливістю, але через маріонетку немає підтримки для цього, і заплутаний безлад з квитками, що вимагають, щоб підтримка не зайшла далеко за 3 роки.

Інший варіант - просто відключити рекомендовані пакети у всій системі через apt.conf, що є масовою зміною поведінки пакета з впливом, що досягають більше, ніж я хотів би.

Я змирився з тим, щоб зробити це ледачим способом;

exec { 'open-vm-tools install':
    command => '/usr/bin/apt-get install -y --no-install-recommends open-vm-dkms open-vm-tools',
    creates => '/usr/lib/open-vm-tools',
}

Але це явно «робиш це неправильно» . Я пропускаю щось, що змусило б це все працювати так, як належить, або це найкращий хакітський спосіб вирішення цього питання?

Відповіді:


3

Помилка 1766 вказувала, що постачальник можливостей встановлює рекомендовані пакети, тоді як постачальник програм apt - ні.

Якщо це правильно (я сам цього не перевірив), то наступне може працювати більш чисто:

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => apt,
}

Адаптовано з довідки про тип лялечки, розділу "пакет" .


Відредагуйте після подальшого дослідження: оскільки постачальник програм apt є типовим для Ubuntu та Debian, використовуйте постачальник можливостей для цих пакетів та додайте придатний ~/.aptitude/configдля root.

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => aptitude,
  require  => File["/root/.aptitude/config"];
}
file { "/root/.aptitude/config":
  ensure  => present,
  content => 'APT::Install-Recommends "0";';
}

Не ідеально, але більш лаконічно, ніж гігантський рядок.


Немає такої удачі; x11-common та всі його друзі закінчилися встановленими. Цей звіт про помилку начебто означає, що є аргумент, який можна додати для контролю поведінки з підходящим постачальником ... але я не можу знайти інформацію про те, як це робити. Цей звіт про помилку може бути застарілим, але, схоже, принаймні на даний момент, aptпровайдер фактично є типовим для Ubuntu та Debian, див. Рядок 13 цього файлу .
Шейн Мадден

Див. Редагування вище.
Майк Ренфро

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.