使用Chef的配方在CentOS7上安装Nginx1.9

尝试将在CentOS7上安装Nginx1.9的方法转化为使用Chef的方式。

Cookbook的名称为nginx,位置为$repo/site-cookbooks/nginx。

目标是CentOS7。如果是其他发行版,可能需要稍作修改。

安装Nginx的步骤

我会不时写一下食谱。

template "/etc/yum.repos.d/nginx.repo" do
  owner "root"
  group "root"
  mode "0644"
end

package "nginx" do
  action :install
  options "--enablerepo=nginx"
end

service "nginx" do
  action [:enable, :start]
  supports :start => true, :status => true, :restart => true, :reload => true
end
# nginx用のレポジトリ設定ファイル
# see http://nginx.org/en/linux_packages.html#stable
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=0

当执行此配置时,它会完成安装、启动服务和自动启动设置。

sudo chef-solo -c solo.rb -j localhost.json  -o nginx

由于仅仅如此,无法管理Nginx的配置文件,所以让我们也一并管理配置文件吧。

要将配置文件也通过Chef进行管理

将Nginx安装后的/etc/nginx/目录及其子目录完整导出

cp -ar /etc/nginx/ /vagrant/site-cookbooks/nginx/templates/default/

我使用Vagrant,通过将配置文件复制到/vagrant/目录下,可以将配置文件放置在主机的代码仓库管理下。

在导出后,将主机上的 site-cookbooks/nginx/templates/default/ 文件夹一并提交。

进行设置文件的配置

刚才的食谱我会这样追加。
配置文件的列表可能因发行版而有所不同。

(conf.d以下的配置文件只是简单的示例,我进行了简化。)

%w{
nginx.conf
fastcgi_params
koi-utf
koi-win
mime.types
scgi_params
uwsgi_params
win-utf
}.each do |file|
  template "/etc/nginx/#{file}" do
    source file
    owner "root"
    group "root"
    mode "0644"
    notifies :start, 'service[nginx]'
    notifies :reload, 'service[nginx]'
  end
end

完成后,请进行一次 “chef client provision”,如果没有差异(如出现 “Chef Client finished, 0 resources updated”),则表示OK。

广告
将在 10 秒后关闭
bannerAds