Chef正确加载新rpm和安装包的方法

时间:2013-08-11 17:15:56

标签: chef vagrant provisioning sysadmin chef-solo

我正在尝试在centos盒子上安装最新版本的php并且正在努力。

我一直关注的食谱是opscode one:https://github.com/opscode-cookbooks/php

看起来我不能使用它安装php 5.5。

要手动安装,我只需执行以下操作(在centos 6.4上):

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum install php55w php55w-opcache

如何使用chef(solo)来安装php 5.5?

2 个答案:

答案 0 :(得分:11)

它总是通过从源安装来工作,但是首选安装rpm以管理依赖关系和更新。

如果您只想要php v5.3,请继续使用php cookbook,默认选项是从CentOS yum repo安装php53。

如果你想要php v5.5,你可以提供另一个配方来包含一个包含php55的yum存储库,如Webtatic EL yum repositoryservergrove.com

remote_file "#{Chef::Config[:file_cache_path]}/webtatic_repo_latest.rpm" do
    source "http://mirror.webtatic.com/yum/el6/latest.rpm"
    action :create
end

rpm_package "jmxtrans" do
    source "#{Chef::Config[:file_cache_path]}/webtatic_repo_latest.rpm"
    action :install
end

然后你只需要覆盖你的node / environment / role对象中的属性node['php']['packages'],通过opscode php cookbook安装php v5.5:

node['php']['packages'] = ['php55w', 'php55w-devel', 'php55w-cli', 'php55w-pear']

答案 1 :(得分:1)

默认情况下,php cookbook使用预构建的软件包在Enterprise Linux上安装PHP。您可以将install_method中的attributes/default.rb属性更改为来源

default['php']['install_method'] = 'source'

您还需要更改default['php']['version']default['php']['checksum']或编译选项default['php']['configure_options']等,以使其有效。

如果您想使用预编译的软件包,请查看Chef的resources and providers,看看是否可以从配方中的URL安装RPM软件包。