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

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

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

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

Похоже, для этого требуется 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

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

Патч обезьяны для 1.8 :)

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

Коллекции Марионеток

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

А. http://yum.puppetlabs.com/el/6/ не имеет ничего для Руби.

Б. Пакет puppet-agent не обновляет системный Ruby, как (я думал?) Рекламируется:

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

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

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

Я близок к тому, чтобы сдаться здесь, serverfault.com - это моя пьеса «Богородица».

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

Ноты:

Примечание 1: я не нашел много на serverfault по этому вопросу. https://serverfault.com/search?q=r10k+on+CEntOS+6

Примечание 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, это еще не решено.

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