Chef에서 package 설치를 할 때 bash에서 yum이나 apt-get을 이용하여 설치할 수도 있겠지만 동일한 cookbook을 CentOS나 Ubuntu 모두에 적용할 경우에는 조건에 의하여 yum인지 apt-get인지 알려주는 로직이 필요합니다.
이 때, chef 의 <package> 를 이용할 수 있습니다.
package "wget" do action :install end
wget을 설치하였습니다.
그런데 간혹 package 명이 플랫폼에 따라 다른 경우가 있습니다. openssl-dev가 대표적입니다. CentOS에서는 openssl-dev이지만 Ubuntu에서는 libssl-dev 입니다.
case node[:platform] when "centos" package "openssl-devel" do action :install end when "ubuntu","debian" package "libssl-dev" do action :install end end
이렇게 하면 되겠지요.
apr-util-dev도 마찬가지입니다.
case node[:platform] when "centos" package "apr-util-dev" do action :install end package "libaprutil1-dev" do action :install end end