2017-07-15 1 views
0

J'ai installé le maître de marionnettes et agent sur les machines exécutant CentOS 6erreur Ruby lors du déploiement d'un module avec des marionnettes sur CentOS 6

Tout allait bien, jusqu'au moment où je l'ai essayé de déployer un module simple exemple: je suis une erreur, expliquée sur l'image.

Essayer de modifier le fichier n'a pas aidé et que le fichier a été mis à jour en fait à chaque fois du référentiel

J'ai essayé l'exécution d'un module différent qui a donné lieu à la même erreur

Error Screenshot

Répondre

0

L'erreur est parce que le formatage du code Ruby ne fonctionnera pas avec Ruby plus âgé. Le paquet Rubis amont de CentOS 6 est 1.8.7, qui est une super ancienne version Ruby, et a été EOL pour 3 years since 2014. Pour résoudre ce problème, Puppet a commencé à empaqueter Ruby et d'autres dépendances dans le cadre d'une opération all-in-one package since Puppet 4. Cela signifie qu'il n'y a pas d'enfer de dépendance en ce qui concerne EOL Ruby, OpenSSL et toutes les autres dépendances: ils sont tous regroupés et pris en charge comme un seul RPM, sans affecter les paquets du système. Cela signifie également que vous ne cassez aucune application qui nécessite un système Ruby différent, et rend généralement l'utilisation de Puppet beaucoup plus facile. En plus de cela, la version de Puppet dans CentOS est 3.X, which is also EOL. Vous devez passer à Puppet 4. Voici un script pratique qui va installer le package de l'agent Puppet 4 sur CentOS 6: https://github.com/petems/puppet-install-shell

Si vous êtes limité à l'aide de marionnettes 3 pour une raison quelconque, il y a quelques solutions moins préférables:

  • Télécharger un nouveau Ruby RPM pour CentOS 6, (par exemple à partir this Github repo) ou une prise en pension CloudPackage.io (comme celui-ci que j'ai fait pour CentOS 6 paquets Ruby https://packagecloud.io/petems/ruby2/install)
    • Inconvénient: Ces RPM ne sont pas soutenu officiellement et pourrait avoir des problèmes involontaires
  • fourche du module pour changer le code Ruby
    • Inconvénient: Ceci est un grand coût d'entretien, et vous aurez à faire à chaque fois qu'une mise à jour arrive au module amont.