Instalação do Foreman na instância amazon ec2

3

Olá e obrigado por ler,

Estou atualmente no processo de criação de um serviço de marionetes para nossas instâncias de ec2 e decidi tentar dar uma chance ao supervisor (gerenciamento de certificados de nó e configuração automática de passageiros parece bom).

Infelizmente, estou com dificuldades na instalação. Estou em um novo '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

e tentou o seguinte:

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

que resulta disso:

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

As sugestões parecem inúteis (--skip-broken instala todas as dependências, exceto o foreman / puppet). Acabei aqui e tentei instalar o repositório (depois de remover o antigo)

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

agora, mais uma vez, o que tentei:

sudo -y update
sudo -y install foreman-installer

resulta no mesmo erro. A instalação sem atualização anterior é possível (embora o yum se queixe de chaves públicas) e resulte no seguinte erro:

[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>'

Eu tive problemas semelhantes ao tentar configurar o passageiro e, eventualmente, me entreguei. Eu suponho que isso acontece devido à versão ruby conflitante, então:

[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

Alguém encontrou os mesmos problemas? Como resolvo isso?

Obrigado antecipadamente e obrigado por ler tudo isso!

    
por afriemann 12.06.2014 / 18:33

4 respostas

1

Pacotes para o Red Hat Enterprise Linux e seus clones não são compatíveis com o Amazon Linux. Você precisará encontrar uma maneira diferente de instalar o Foreman ou, de preferência, uma distribuição Linux diferente (o Amazon Linux possui muitos problemas que geralmente o tornam inadequado para praticamente qualquer coisa).

    
por 12.06.2014 / 18:38
1

Desde que passei muito tempo com fantoches na Amazon recentemente, eu quis atualizar isso.

Como a versão fantoche no amazon linux aparentemente não é compatível com a instalação padrão do ruby2.0, você terá que instalar o material ruby1.8 que estiver faltando e vincular aos arquivos corretos. Isso deve fazer o truque:

preparando para a instalação:

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

e para instalar o fantoche com o apache:

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

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

e finalmente passageiro:

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ão se esqueça de fazer as coisas usuais (config.ru e a configuração vhost para o apache) e então tudo deve funcionar. Eu não tentei isso com o capataz, uma vez que optamos por não usá-lo, no entanto, isso poderia ser possível e, se assim for, deve funcionar de forma bastante semelhante.

    
por 12.09.2014 / 21:37
1

Eu consegui instalar o Foreman no Amazon Linux, usando o instalador de contramestre que também instala o contramestre-proxy.

Porque o fantoche e o contramestre usam o ruby1.8 e o amazon linux por padrão usa 2.0

  • echo -e "[principal] \ nenabled = 0" > /etc/yum/pluginconf.d/priorities.conf
  • yum instala ruby18
  • yum instala rubygems18
  • alternativas --config ruby = > escolha ruby1.8

Em seguida, o pacote scl-utils (versão 20120229) que está na epel não tem esse arquivo / usr / bin / scl_source. Você precisa desta versão 20120927. Eu encontrei aqui:

Em seguida, você precisa do pacote ipmitool. Eu usei yum downloader em uma caixa de centos e instalei

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

Depois que o instalador do contramestre -i terminou com sucesso.

    
por 14.07.2016 / 19:02
0

Eu tive o mesmo erro em um sistema do CentOS 6. Acontece que eu precisava instalar um repositório adicional, conforme descrito no guia de instalação do capataz:

link

All RHEL and derivatives require Red Hat Software Collections (RHSCL) 1.0 or rebuild, e.g. Software Collections for CentOS. RHSCL is available to RHEL customers as a separate repository or child channel. More information on Software Collections for CentOS is available here and for Scientific Linux it is available here.

Suponho que você deve fazer algo semelhante em sua instância do AWS.

    
por 26.06.2014 / 16:53