Назад | Перейти на главную страницу

Установка Foreman на экземпляр amazon ec2

Привет и спасибо, что прочитали,

В настоящее время я нахожусь в процессе настройки марионеточной службы для наших экземпляров ec2 и решил попробовать бригадира (управление сертификатами узлов и автоматическая настройка пассажиров кажутся хорошими).

К сожалению, при установке возникают трудности. Я использую свежий 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

и попробовал следующее:

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

что приводит к этому:

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

Предложения кажутся бесполезными (--skip-broken устанавливает все зависимости, кроме foreman / puppet). Я закончил Вот и попробовал установить репозиторий (после удаления старого)

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

теперь снова то, что я пробовал:

sudo -y update
sudo -y install foreman-installer

приводит к той же ошибке. Возможна установка без предыдущего обновления (хотя yum будет жаловаться на открытые ключи) и приведет к следующей ошибке:

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

У меня были аналогичные проблемы при установке пассажира, и в итоге я сдался. Я предполагаю, что это происходит из-за конфликтующей версии Ruby, поэтому:

[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

Кто-то сталкивался с такими же проблемами? Как мне решить эту проблему?

Заранее спасибо и спасибо, что прочитали все это!

Мне удалось установить Foreman на Amazon Linux, используя программу установки foreman, которая также устанавливает прокси-сервер foreman.

Поскольку марионетка и бригадир используют ruby1.8, а amazon linux по умолчанию использует 2.0

  • echo -e "[основной] \ nenabled = 0"> /etc/yum/pluginconf.d/priorities.conf
  • ням установить ruby18
  • ням установить rubygems18
  • альтернативы --config ruby ​​=> выбрать ruby1.8

Далее, пакет scl-utils (версия 20120229), который находится в epel, не имеет этого файла / usr / bin / scl_source. Вам нужна эта версия 20120927. Я нашел ее здесь:

Далее вам понадобится пакет ipmitool. Я использовал загрузчик yum на приставке centos и установил

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

После этого установщик -i успешно завершил работу.

Поскольку в последнее время я провел много времени с марионеткой на Amazon, я хотел обновить это.

Поскольку марионеточная версия на amazon linux, по-видимому, несовместима с установкой ruby2.0 по умолчанию, вам придется установить недостающие файлы ruby1.8 и связать их с правильными файлами. Это должно помочь:

подготовка к установке:

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

и установить марионетку с apache:

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

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

и наконец пассажирский:

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

Не забудьте проделать обычные вещи (config.ru и конфиг vhost для apache), и тогда все должно работать. Я не пробовал это с мастером, так как мы решили не использовать его, однако это могло быть возможно, и если так, должно работать примерно так же.

Пакеты для Red Hat Enterprise Linux и его клонов несовместимы с Amazon Linux. Вам нужно будет найти либо другой способ установки Foreman, либо, желательно, другой дистрибутив Linux (у Amazon Linux есть много проблем, которые делают его непригодным практически для чего-либо).

У меня была такая же ошибка в системе CentOS 6. Оказывается, мне нужно было установить дополнительный репозиторий, как описано в руководстве по установке для мастера:

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

Для всех RHEL и производных требуется Red Hat Software Collections (RHSCL) 1.0 или перекомпоновка, например Коллекции программного обеспечения для CentOS. RHSCL доступен клиентам RHEL как отдельный репозиторий или дочерний канал. Дополнительная информация о коллекциях программного обеспечения для CentOS доступна здесь, а для Scientific Linux - здесь.

Я предполагаю, что вы должны сделать что-то подобное в своем экземпляре AWS.