在CEntOS 6.7上的r10k,有没有人取得这个壮举?

你们知道如何在一个使用Puppet 3.6的CEntOS 6.7服务器上正确运行r10k吗? 这个矛盾呢?

我检查了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的不屑的追求。

第三方存储库

但大多数第三方回购不提供CEntOS 6.7的Ruby 1.9。

  • https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/repoview/letter_r.group.html 🙁

  • https://dl.fedoraproject.org/pub/epel/6/x86_64/

我没有正确安装我find的一个软件包,在Remi的回购中 ,由于缺lessmockbuild用户而失败。 我认为只有从源头上构build才是必要的。

ruby“经理人”

我安装了RVM。

然而,这需要glibc = 2.12-1.166.el6_7.7 ,我的系统没有这个特定的版本可用(出于很好的理由)。

无论如何,这只会对特定用户有效。 如果安装了RVM,需要使用Ruby的系统用户可能会感到奇怪。 rbenv ,可能减轻了这个问题,给了我同样的关于glibc的guff:

 $ 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,CEntOS 6的系统Ruby:

1.8的猴子补丁 🙂

不过, r10k开发人员后来删除了对Ruby1.8的支持 🙁

木偶集合

接下来,在评论者的要求下,我检查了木偶集合文档。

A. http://yum.puppetlabs.com/el/6/对Ruby没有任何用处。

B.傀儡代理软件包不会更新系统Ruby,因为(我认为?)广告: 在这里输入图像说明

在这里输入图像说明

但是,安装之后,看起来确实是为Puppet生成了一个定制的Ruby。 有关更多详细信息,请参阅下面的答案。

CE10是否支持r10k?

CEntOS 6支持Ruby 1.9吗?

我快要放弃在这里,serverfault.com是我的'冰雹玛丽'玩。

当然,除了实际工作,我还有更多的select。 我可能只是乞求RedHat包维护人员更新他们的Ruby,或者纠缠某些人(你知道你是谁)加快他们的CEntOS 7努力的步伐…

笔记:

注1:我没有发现很多关于这个问题的serverfault。 https://serverfault.com/search?q=r10k+on+CEntOS+6

注2:我已经将此作为我对以下问题的研究的一部分:

如何添加第三方木偶模块而不将它们提交到源代码pipe理?

r10k 1.5.1是支持ruby1.8.7的最后一个版本。 即使你安装了1.5.1的gem,也会安装比release-release-release更新的依赖关系,这也与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 

答案是在Puppet Collections中,显然是:

 $ 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或内部回购库提供给您的系统。

要回答这个明确的问题:

是的,您可以使用CURL,RPM和YUM在CENTOS 6上安装r10k。

至于你是否可以保留你那古老的垂死的木偶3.6,这样做还是悬而未决。

(注:pipe理层故意忽略某些输出以保护有罪和/或愚蠢。)