QA@IT
«質問へ戻る

質問を投稿

Berkshelfで入れたcookbookのtemplate 内にあるインスタンス変数を宣言する方法について

Berkshelfを使い php-fpm の cookbook を作成しているのですが
php-fpm のバージョンアップで listen.owner を指定していないとエラーが出るようになってしまいました。

具体的には下記のような変更が必要になります。

変更前

;listen.owner = www-data
;listen.group = www-data

変更後

listen.owner = nginx
listen.group = nginx

そこで cookbook の該当箇所を探したところ templates/default/pool.conf.erb に以下の様な記述がありました。

;listen.owner = nobody
<% unless @listen_owner.nil? %>
listen.owner = <%= @listen_owner %>
<% end %>

;listen.group = nobody
<% unless @listen_group.nil? %>
listen.group = <%= @listen_group %>
<% end %>

ここから @listen_owner@listen_group を何処かで宣言すれば良いとはわかるのですが、どうすればよいかわかりませんでした。

以前に stackoverflowにもおなじ質問をして、その時は rewind リソースを使えば良いと教えてもらったのですが、そちらもわからない部分が多すぎて具体的なコードがかけずにいる状態です。
http://stackoverflow.com/questions/25401477/how-can-i-edit-www-conf-for-php-fpm-in-chef-recipe/25405854

Berkshelfを使い `php-fpm` の cookbook を作成しているのですが
php-fpm のバージョンアップで listen.owner を指定していないとエラーが出るようになってしまいました。

具体的には下記のような変更が必要になります。

変更前

```
;listen.owner = www-data
;listen.group = www-data
```

変更後

```
listen.owner = nginx
listen.group = nginx
```

そこで cookbook の該当箇所を探したところ `templates/default/pool.conf.erb` に以下の様な記述がありました。

```
;listen.owner = nobody
<% unless @listen_owner.nil? %>
listen.owner = <%= @listen_owner %>
<% end %>

;listen.group = nobody
<% unless @listen_group.nil? %>
listen.group = <%= @listen_group %>
<% end %>
```

ここから `@listen_owner` と `@listen_group` を何処かで宣言すれば良いとはわかるのですが、どうすればよいかわかりませんでした。


以前に stackoverflowにもおなじ質問をして、その時は `rewind` リソースを使えば良いと教えてもらったのですが、そちらもわからない部分が多すぎて具体的なコードがかけずにいる状態です。
http://stackoverflow.com/questions/25401477/how-can-i-edit-www-conf-for-php-fpm-in-chef-recipe/25405854