環境
- vagrant
- CentOS 6.5
問題と対応方針
- chefの
package
リソースを使うとepelリポジトリから古いバージョン(1.0系)のnginxがインストールされてしまう -
/etc/yum.repos.d/nginx.repo
にnginx.orgのリポジトリを指定し、新しいバージョンのnginxをインストールする
実装
sitecookbooks/nginx/templates/default/nginx.repo.erb
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
site-cookbooks/nginx/recipes/default.rb
template "/etc/yum.repos.d/nginx.repo" do
mode 0644
user 'root'
group 'root'
end
yum_package "nginx" do
action :install
flush_cache [:before]
end
service "nginx" do
action [:start, :enable]
supports status: true, restart: true, reload: true
end
参考
- http://wiki.nginx.org/Install - CentOS以外のインストール方法も記載されています
-
https://docs.chef.io/resource_yum.html - ページ最下部に、Chefで
/etc/yum.repos.d/*.repo
を利用してパッケージをインストールする方法が記載されています