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:
Однако разработчики 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, пока она находится в воздухе.
(Примечание: некоторые выводы были намеренно опущены руководством для защиты виновных и / или глупых.)