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

Mar*_*ace 10 sysadmin provisioning chef-infra vagrant chef-solo

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

我一直在看的食谱是opscode: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
Run Code Online (Sandbox Code Playgroud)

这如何转化为使用chef(solo)来安装php 5.5?

sha*_*zhu 13

它始终通过从源安装来工作,但yum首选安装rpm来管理依赖项和更新.

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

如果你想要php v5.5,你可以提供另一个配方来包含一个yum存储库,其中包含像Webtatic EL yum存储库servergrove.com这样的php55:

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
Run Code Online (Sandbox Code Playgroud)

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

node['php']['packages'] = ['php55w', 'php55w-devel', 'php55w-cli', 'php55w-pear']
Run Code Online (Sandbox Code Playgroud)


Ter*_*ang 1

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

default['php']['install_method'] = 'source'
Run Code Online (Sandbox Code Playgroud)

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

如果您想使用预编译的软件包,请查看 Chef 的资源和提供程序,看看是否可以从食谱中的 URL 安装 RPM 软件包。