r10k на CEntOS 6.7, кто-нибудь достиг этого подвига?

Ребята, вы знаете, как правильно запустить r10k на сервере CEntOS 6.7 с Puppet 3.6? Это противоречие в терминах?

Я проверил список требований исходного кода r10k: https://github.com/puppetlabs/r10k

Похоже, что требуется Ruby 1.9. Справедливо.

Но...

$ facter rubysitedir rubyversion
rubysitedir => /usr/lib/ruby/site_ruby/1.8
rubyversion => 1.8

Так начинается невыносимый квест на легендарного Рубина.

Репозитории третьих лиц

Но большинство сторонних репозиториев не предлагают Ruby 1.9 для CEntOS 6.7.

Мне не удалось правильно установить Один пакет, который я нашел в репозитории хорошего старого Реми, не удался из-за отсутствия пользователя mockbuild. Я бы подумал, что это будет необходимо, только если построен из источника.

Рубиновые "менеджеры"

Я установил RVM.

Это, однако, требуетсяglibc = 2.12-1.166.el6_7.7и в моей системе эта конкретная версия недоступна (по уважительным причинам).

Независимо от этого, это работало бы только для определенных пользователей. С системными пользователями, которые должны использовать Ruby, если установлен RVM, может быть что-то странное.rbenv, который мог бы смягчить эту проблему, дал мне ту же болтовню о glibc:

$ mkdir ~/.tmp && export TMPDIR=~/.tmp && rbenv install 1.9.3-p551  ##  How did it come to this...
    Downloading yaml-0.1.6.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749
Installing yaml-0.1.6...

BUILD FAILED (CentOS release 6.7 using ruby-build 20160913)

Inspect or clean up the working tree at /export/home/nger/.tmp/ruby-build.20161117064013.21057
Results logged to /home/nger/.tmp/ruby-build.20161117064013.21057.log

Last 10 log lines:
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/nger/.tmp/ruby-build.20161117064013.21057/yaml-0.1.6':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

Системный Рубин

В любом случае, тогда я подумал, что смогу обойтись без использования Ruby 1.8, системы Ruby в CEntOS 6:

Monkey Patch для 1.8:)

Однако разработчики r10k позже убрали поддержку Ruby 1.8:(

Кукольные коллекции

Затем, по распоряжению комментаторов, я проверил документацию Коллекции кукол.

A. http://yum.puppetlabs.com/el/6/ имеет ничего для Ruby.

B. Пакет puppet-agent не обновляет систему Ruby, как (я думал?) Объявил:

ОДНАКО, после установки, похоже, что это действительно производит на заказ Ruby только для Puppet. Обратитесь к ответу ниже для более подробной информации.

CEntOS 6 даже поддерживается r10k?

CEntOS 6 поддерживает Ruby 1.9?

Я близок к тому, чтобы сдаться, faultserver.ru - моя пьеса "Радуйся, Мария".

Конечно, у меня есть больше возможностей, кроме реальной работы. Я мог бы просто попросить, чтобы сопровождающие RedHat обновили свой Ruby, или приставали к определенным людям (вы знаете, кто вы есть), чтобы ускорить их усилия в CEntOS 7...

Заметки:

Примечание 1: я не нашел много сообщений об ошибках на сервере по этому вопросу. https://faultserver.ru/search?q=r10k+on+CEntOS+6

Примечание 2: я задал этот вопрос в рамках моего исследования по следующему предыдущему вопросу:

Как добавить сторонние кукольные модули, не передавая их в систему контроля версий?

2 ответа

r10k 1.5.1 - последняя версия, поддерживающая ruby ​​1.8.7. Даже если вы установите gem 1.5.1, будут установлены зависимости, выпущенные ранее, чем те, которые также несовместимы с ruby ​​1.8.7. Очевидно, что это приводит к ошибкам, отличным от r10k, и причина, по которой вы можете искать этот ответ.

yum install ruby-devel rubygems rubygem-rspec rubygem-rake
gem install --no-rdoc --no-ri semantic_puppet -v 0.1.3
gem install --no-rdoc --no-ri r10k -v 1.5.1

Ответ был в Кукольных Коллекциях, по-видимому:

$ curl -O https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm
$ sudo rpm -ivh puppetlabs-release-pc1-el-6.noarch.rpm
$ sudo yum -d 1 install -y puppet-agent
$ /opt/puppetlabs/puppet/bin/ruby --version
ruby 2.1.9p490 (2016-03-30 revision 54437) [x86_64-linux]

r10k будет хорошо работать с этим.

Тем не менее, это дает вам более позднюю версию Puppet.

$ /opt/puppetlabs/bin/puppet --version
4.8.0

Это не может быть решено принудительной установкой более ранней версии puppet-agent пакет, хотя:

$ sudo yum info puppet-agent-1.0.0 | grep 'puppet ('
        : puppet (4.0.0)

Реальный ответ здесь состоит в том, чтобы скомпилировать вашу собственную версию Ruby и сделать ее доступной для вашей системы с FTP или из внутреннего репо.

Чтобы ответить на явный вопрос:

ДА, ВЫ МОЖЕТЕ УСТАНОВИТЬ r10k НА CENTOS 6 С ИСПОЛЬЗОВАНИЕМ CURL, RPM И YUM.

Что касается того, можете ли вы сохранить свою старую умирающую Puppet 3.6, пока она находится в воздухе.

(Примечание: некоторые выводы были намеренно опущены руководством для защиты виновных и / или глупых.)

Другие вопросы по тегам