Installer open-vm-tools dans Ubuntu via Puppet; quel est le moindre mal?


9

Dans un monde idéal, la configuration de la marionnette pour installer le open-vm-toolsdevrait être aussi simple que cela:

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

Mais, cela ouvre une horrible boîte de fluage de dépendance; il installe X, qui n'appartient évidemment pas aux serveurs. Depuis Ubuntu 10.04, ces packages finissent tous les deux par recommander le open-vm-toolboxpackage d'outils 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

Les packages recommandés sont toujours installés par défaut. Il n'est clairement pas souhaitable d'installer les dépendances X par défaut lors de l'installation d'un package décrit comme "Outils CLI".

La demande de fonctionnalité contre Debian a été immédiatement rejetée pour cette raison, mais les têtes plus froides ne prévalaient pas dans Ubuntu . Il semble qu'au cours de la semaine dernière, on ait reconnu qu'il s'agissait d'un changement mal avisé , mais cela ne sera d'aucune utilité jusqu'à ce que la prochaine version de LTS arrive.

Le comportement d'installation des paquets recommandés est assez facilement désactivé sur la ligne de commande avec l' --no-install-recommendsoption, mais à travers la marionnette il n'y a pas de support pour ce faire, et un enchevêtrement gâchis de billets demandant que le soutien ne sont pas allés loin en 3 ans.

L'autre option consiste à simplement désactiver les packages recommandés dans tout le système via apt.conf, ce qui est un changement massif dans le comportement des packages avec des impacts atteignant plus que je ne le souhaiterais.

Je me suis résigné à le faire paresseusement;

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',
}

Mais c'est clairement "mal le faire" . Suis-je en train de manquer quelque chose qui ferait tout fonctionner comme il est censé le faire, ou est-ce la meilleure solution de piratage à ce problème?

Réponses:


3

Le bogue 1766 indiquait que le fournisseur d'aptitudes installe les packages recommandés, contrairement au fournisseur d'apt.

Si c'est correct (je ne l'ai pas vérifié moi-même), alors ce qui suit peut fonctionner plus proprement:

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

Adapté de Puppet Type Reference, section "package" .


Modifier après une enquête plus approfondie: étant donné que le fournisseur apt est la valeur par défaut sur Ubuntu et Debian, utilisez le fournisseur aptitude pour ces packages et ajoutez un approprié ~/.aptitude/configpour 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";';
}

Pas parfait, mais plus concis qu'une ligne d'exécution géante.


Pas de chance; x11-common et tous ses amis ont fini par être installés. Ce rapport de bogue semble impliquer qu'il y a un argument qui peut être ajouté pour contrôler le comportement avec le fournisseur apt ... mais je ne trouve aucune information sur la façon dont cela est censé être fait. Ce rapport de bogue peut être obsolète, mais, semble au moins actuellement, le aptfournisseur est en fait la valeur par défaut pour Ubuntu et Debian, voir la ligne 13 de ce fichier .
Shane Madden

Voir modification ci-dessus.
Mike Renfro

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.