3 votes

Installation de Foreman sur une instance amazon ec2

Bonjour et merci de m'avoir lu,

Je suis actuellement en train de mettre en place un service Puppet pour nos instances ec2 et j'ai décidé d'essayer Foreman (la gestion des certificats de nœuds et la configuration automatique des passagers semblent intéressantes).

Malheureusement, je rencontre des difficultés avec l'installation. Je suis sur un nouveau 'Amazon Linux AMI x86_64 PV' :

[root@hostname ~]# uname -a
Linux hostname 3.10.35-43.137.amzn1.x86_64 #1 SMP Wed Apr 2 09:36:59 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

et j'ai essayé ce qui suit :

sudo yum -y update
sudo yum -y install http://yum.theforeman.org/releases/1.1/el6/x86_64/foreman-release.rpm
sudo yum -y install foreman-installer

ce qui donne ceci :

Error: Package: rubygem-foreman_api-0.1.11-1.el6.noarch (foreman)
       Requires: rubygem(rest-client) >= 1.6.1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

Les suggestions semblent inutiles (--skip-broken installe toutes les dépendances sauf foreman/Puppet). J'ai fini par ici et essayé d'installer le dépôt (après avoir supprimé l'ancien)

sudo yum -y remove epel-release
sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

encore une fois, ce que j'ai essayé :

sudo -y update
sudo -y install foreman-installer

donne lieu à la même erreur. L'installation sans mise à jour préalable est possible (mais yum se plaindra des clés publiques) et aboutit à l'erreur suivante :

[ec2-user@hostname ~]$ foreman-installer
/usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- highline/import (LoadError)
        from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/sbin/foreman-installer:3:in `<main>'

J'ai eu des problèmes similaires en essayant de mettre en place un passager et j'ai fini par abandonner. Je suppose que cela se produit en raison d'un conflit de version de ruby, donc :

[root@hostname puppet]# ruby --version
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]
[root@hostname puppet]# gem --version
2.0.14
[root@hostname puppet]# ls /usr/bin | grep ruby
ruby
ruby1.8
ruby2.0
[root@hostname puppet]# ls /usr/bin | grep gem
gem
gem2.0

Quelqu'un a-t-il rencontré les mêmes problèmes ? Comment puis-je résoudre ce problème ?

Merci d'avance et merci d'avoir lu tout cela !

1voto

Michael Hampton Points 232226

Les paquets pour Red Hat Enterprise Linux et ses clones ne sont pas compatibles avec Amazon Linux. Vous devrez trouver un autre moyen d'installer Foreman, ou de préférence une autre distribution Linux (Amazon Linux présente de nombreux problèmes qui le rendent généralement inadapté à presque tout).

1voto

afriemann Points 43

Comme j'ai passé beaucoup de temps avec Puppet sur amazon récemment, je voulais mettre à jour ce document.

Puisque la version de Puppet sur amazon linux n'est apparemment pas compatible avec l'installation par défaut de ruby2.0, vous devrez installer les éléments manquants de ruby1.8 et créer un lien vers les fichiers corrects. Ceci devrait faire l'affaire :

la préparation de l'installation :

if ! yum repolist | grep -q puppetlabs;
then
    echo "..enabling puppet repository.."
    # https://tickets.puppetlabs.com/browse/PUP-2132
    echo -e "[main]\nenabled = 0" > /etc/yum/pluginconf.d/priorities.conf
    rpm --quiet -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-10.noarch.rpm
fi

echo "..updating.."
yum -y --quiet clean all
yum -y --quiet update

if readlink /etc/alternatives/ruby | grep -q "ruby2\.0"
then
    echo "..making ruby1.8 default.."
    ln -sf /usr/bin/ruby1.8 /etc/alternatives/ruby
fi

if readlink /etc/alternatives/gem | grep -q "gem2\.0"
then
    echo "..making gem1.8 default.."
    ln -sf /usr/bin/gem1.8 /etc/alternatives/gem
fi

et d'installer Puppet avec apache :

PACKAGE="puppet"
#PACKAGE="puppet-server"

echo "..installing "$PACKAGE" and requirements.."
yum -y --quiet install "$PACKAGE" rubygem18-json

et enfin passager :

echo "..installing passenger and requirements.."
yum -y install httpd httpd-devel mod_ssl ruby18-devel rubygems gcc gcc-c++ curl-devel openssl-devel zlib-devel
gem install rack passenger

passenger-install-apache2-module --auto

N'oubliez pas de faire les choses habituelles (config.ru et la configuration vhost pour apache) et ensuite tout devrait fonctionner. Je n'ai pas essayé ceci avec foreman puisque nous avons choisi de ne pas l'utiliser, mais cela pourrait être possible et si c'est le cas, le fonctionnement devrait être assez similaire.

1voto

user365399 Points 11

J'ai pu installer foreman sur Amazon Linux, en utilisant le foreman-installer qui installe aussi le foreman-proxy.

Parce que Puppet et foreman utilisent ruby1.8 et amazon linux utilise par défaut 2.0.

  • echo -e "[main] \nenabled = 0" > /etc/yum/pluginconf.d/priorities.conf
  • yum install ruby18
  • yum install rubygems18
  • alternatives --config ruby => choisir ruby1.8

Ensuite, le paquet scl-utils (version 20120229) qui est dans epel for n'a pas ce fichier /usr/bin/scl_source. Vous avez besoin de cette version 20120927. Je l'ai trouvé ici :

Ensuite, vous avez besoin du paquet ipmitool. J'ai utilisé yum downloader sur une boite centos, et j'ai installé

  • yum localinstall ipmitool-1.8.15-2.el6.x86_64.rpm.

Après cela, foreman-installer -i a terminé avec succès.

0voto

ilitirit Points 4636

J'ai eu la même erreur sur un système CentOS 6. Il s'avère que j'ai dû installer un référentiel supplémentaire comme décrit dans le guide d'installation du foreman :

http://theforeman.org/manuals/1.5/index.html#3.3.1RPMPackages

Tous les systèmes RHEL et dérivés nécessitent Red Hat Software Collections (RHSCL). 1.0 ou une reconstruction, par exemple Software Collections for CentOS. RHSCL est disponible pour les clients RHEL en tant que dépôt séparé ou canal enfant. De plus amples informations sur Software Collections for CentOS sont disponibles ici et pour Scientific Linux, il est disponible ici.

Je suppose que vous devriez faire quelque chose de similaire dans votre instance AWS.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X