Amazon web services 通过Chef安装RVM/Ruby 1.9.3
我刚刚开始尝试将我的基础设施转移到Chef,我想我肯定错过了一些明显的东西 我正在使用cookbook安装RVM,我希望它安装Ruby 1.9.3p125并将其设置为默认值 以下是我的基本服务器角色:Amazon web services 通过Chef安装RVM/Ruby 1.9.3,amazon-web-services,amazon-ec2,chef-infra,ruby-1.9.3,Amazon Web Services,Amazon Ec2,Chef Infra,Ruby 1.9.3,我刚刚开始尝试将我的基础设施转移到Chef,我想我肯定错过了一些明显的东西 我正在使用cookbook安装RVM,我希望它安装Ruby 1.9.3p125并将其设置为默认值 以下是我的基本服务器角色: name "base" description "Basic configuration for all nodes" run_list( 'recipe[git]', 'recipe[sudo]', 'recipe[ubuntu]', 'recipe[rvm]', 'reci
name "base"
description "Basic configuration for all nodes"
run_list(
'recipe[git]',
'recipe[sudo]',
'recipe[ubuntu]',
'recipe[rvm]',
'recipe[postgresql::client]'
)
override_attributes(
:authorization => {
:sudo => {
:users => ["ubuntu"],
:passwordless => true
}
},
:rvm => {
:rubies => ["ruby-1.9.3-p125"],
:default_ruby => "ruby-1.9.3-p125",
:global_gems => ['bundler', 'rake']
}
)
这运行起来没有任何问题,但是如果我在完成后ssh到服务器中,rvm不会列出任何已安装的rubies:
ubuntu@test.server:~$ rvm list
rvm rubies
# No rvm rubies installed yet. Try 'rvm help install'.
这甚至是指定安装某些rubies的正确方法吗?如果没有,正确的方法是什么?如果是这样,我做错了什么?您的代码没有问题。问题在于,您从未告诉厨师安装您在角色中定义的红宝石 您已将
recipe[rvm]
包含在角色的run\u列表中,该列表转换为recipe[rvm::default]
。查看食谱的文档,您会发现以下食谱:
安装RVM gem并初始化Chef以使用轻量级资源和提供程序(LWRP)如果您只想访问所提供的LWRP,请明确使用此配方。
在run\u列表中用recipe[rvm]
替换recipe[rvm::system]
可以达到您想要的效果:
在系统范围内安装RVM代码库(即,安装到/usr/local/RVM中),并安装红宝石、全局宝石和由属性元数据驱动的特定宝石。此配方包括默认和系统安装。
如果您想在RVM系统范围内安装Rubies等,请自行使用此配方。您的代码没有问题。问题在于,您从未告诉厨师安装您在角色中定义的红宝石
您已将recipe[rvm]
包含在角色的run\u列表中,该列表转换为recipe[rvm::default]
。查看食谱的文档,您会发现以下食谱:
安装RVM gem并初始化Chef以使用轻量级资源和提供程序(LWRP)如果您只想访问所提供的LWRP,请明确使用此配方。
在run\u列表中用recipe[rvm]
替换recipe[rvm::system]
可以达到您想要的效果:
在系统范围内安装RVM代码库(即,安装到/usr/local/RVM中),并安装红宝石、全局宝石和由属性元数据驱动的特定宝石。此配方包括默认和系统安装。
如果您希望RVM系统范围内安装红宝石等,请自行使用此配方。