3
votes

Puppet: impossible de charger un tel fichier - semantic_puppet

J'obtiens une erreur ci-dessous lors de l'activation de l'agent marionnette. J'ai eu cette erreur lors du processus d'installation.

[root@rgenupula1c puppet-enterprise-2019.0.2-el-7-x86_64]# /opt/puppetlabs/puppet/bin/puppet agent --enable
Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.3.2
Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.3.2 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.3.2
cannot load such file -- semantic_puppet
[root@rgenupula1c puppet-enterprise-2019.0.2-el-7-x86_64]# 


1 commentaires

Eu le même problème, qui s'est avéré être causé par RVM. La solution de contournement qui a fonctionné pour moi: sudo mv /etc/profile.d/rvm.sh{,.save} puis invoquez Puppet dans un nouveau shell.


3 Réponses :


2
votes

semantic_puppet nécessite executable-hooks-1.3.2 et gem-wrappers-1.3.2 . Cependant, les deux ne peuvent pas être chargés car - selon le message d'erreur - leurs "extensions ne sont pas construites".

Cela peut se produire lorsque plusieurs rubis sont installés et que les gemmes se confondent. Vous pouvez résoudre les problèmes en utilisant gem pristine --all tant que vous êtes dans le bon environnement ruby.

En fonction de votre installation de marionnette et de votre installation locale de ruby, il peut y avoir différentes manières de spécifier le rubis que vous utilisez. Cependant, vous voudrez peut-être essayer quelque chose comme:

PATH=/opt/puppetlabs/puppet/bin:$PATH
export PATH
sudo gem pristine --all


1 commentaires

Cette solution n'a pas fonctionné pour moi, j'utilise ruby ​​qui est préinstallé dans l'environnement de marionnettes



1
votes

Dans mon cas, semantic_puppet n'a pas été installé dans l'environnement ruby ​​qui a été défini par défaut sur puppet. Voici comment je l'ai fait fonctionner:

  1. Arrêtez d'exécuter le serveur:

    $ sudo service pe-puppetserver stop

  2. Exécutez la commande suivante:

    $ puppetserver gem install semantic_puppet

  3. Redémarrez le serveur de marionnettes:

    $ sudo service pe-puppetserver redémarre

Assurez-vous que vos variables d'environnement pointent vers / opt / puppetlabs / bin lorsque vous exécutez cette commande par un super utilisateur.


0 commentaires

1
votes

Un peu tard dans le jeu - mais - si vous êtes ici à cause de problèmes avec l'agent marionnette ... c'est peut-être parce que vous avez une autre copie de ruby ​​sur votre système et que cela gêne celui que marionnette installe. Vérifiez votre chemin et vous pourriez voir rvm là-bas ou quelque chose d'autre de ce genre.

Si vous pouvez désinstaller d'autres installations de ruby, cela peut résoudre le problème.

Si vous ne pouvez pas les désinstaller, faites ce que vous pouvez pour vous assurer que l'installation de puppet ruby ​​est la première sur le chemin.


0 commentaires