Adding a recipe to an existing role in chef-server

My chef client node has an “app” role in it’s run_list, that has already run on
my node. Let’s say it that the app role has two recipes in it’s run_list:
“nginx” and “varnish”. I update my my app role on my chef server, so that it
now has three recipes: “nginx”, “varnish”, and “git”. When I run sudo chef-client on my node, it doesn’t pick up on the fact that the app role has
changed, and run the new “git” recipe…has anyone else has this problem? Is
this by design or am I doing something wrong?

On Wed, Jan 26, 2011 at 3:07 PM, ben.marini@akqa.com wrote:

My chef client node has an "app" role in it's run_list, that has already run on
my node. Let's say it that the app role has two recipes in it's run_list:
"nginx" and "varnish". I update my my app role on my chef server, so that it
now has three recipes: "nginx", "varnish", and "git". When I run sudo chef-client on my node, it doesn't pick up on the fact that the app role has
changed, and run the new "git" recipe...has anyone else has this problem? Is
this by design or am I doing something wrong?

You need to also update the role via knife on the chef server:

$ knife role from file roles/myrole.rb
$ knife role show myrole

Grig

I did that, and verified that the role is updated on my chef server. Still
though, my client isn't picking it up.

On 1/26/11 3:13 PM, "Grig Gheorghiu" grig.gheorghiu@gmail.com wrote:

On Wed, Jan 26, 2011 at 3:07 PM, ben.marini@akqa.com wrote:

My chef client node has an "app" role in it's run_list, that has
already run on
my node. Let's say it that the app role has two recipes in it's
run_list:
"nginx" and "varnish". I update my my app role on my chef server, so
that it
now has three recipes: "nginx", "varnish", and "git". When I run sudo chef-client on my node, it doesn't pick up on the fact that the app
role has
changed, and run the new "git" recipe...has anyone else has this
problem? Is
this by design or am I doing something wrong?

You need to also update the role via knife on the chef server:

$ knife role from file roles/myrole.rb
$ knife role show myrole

Grig

Can you run your chef client with debug logging and see what the log
file tells you? Something like

chef-client -j /etc/chef/chef.json -L /var/log/chef-debug.log -l debug

On Wed, Jan 26, 2011 at 3:16 PM, Ben Marini Ben.Marini@akqa.com wrote:

I did that, and verified that the role is updated on my chef server. Still
though, my client isn't picking it up.

On 1/26/11 3:13 PM, "Grig Gheorghiu" grig.gheorghiu@gmail.com wrote:

On Wed, Jan 26, 2011 at 3:07 PM, ben.marini@akqa.com wrote:

My chef client node has an "app" role in it's run_list, that has
already run on
my node. Let's say it that the app role has two recipes in it's
run_list:
"nginx" and "varnish". I update my my app role on my chef server, so
that it
now has three recipes: "nginx", "varnish", and "git". When I run sudo chef-client on my node, it doesn't pick up on the fact that the app
role has
changed, and run the new "git" recipe...has anyone else has this
problem? Is
this by design or am I doing something wrong?

You need to also update the role via knife on the chef server:

$ knife role from file roles/myrole.rb
$ knife role show myrole

Grig

Grig, we ended up removing the node and re bootstrapping to solve the
problem. The path of least resistance...

On 1/26/11 3:41 PM, "Grig Gheorghiu" grig.gheorghiu@gmail.com wrote:

Can you run your chef client with debug logging and see what the log
file tells you? Something like

chef-client -j /etc/chef/chef.json -L /var/log/chef-debug.log -l debug

On Wed, Jan 26, 2011 at 3:16 PM, Ben Marini Ben.Marini@akqa.com wrote:

I did that, and verified that the role is updated on my chef server.
Still
though, my client isn't picking it up.

On 1/26/11 3:13 PM, "Grig Gheorghiu" grig.gheorghiu@gmail.com wrote:

On Wed, Jan 26, 2011 at 3:07 PM, ben.marini@akqa.com wrote:

My chef client node has an "app" role in it's run_list, that has
already run on
my node. Let's say it that the app role has two recipes in it's
run_list:
"nginx" and "varnish". I update my my app role on my chef server, so
that it
now has three recipes: "nginx", "varnish", and "git". When I run sudo chef-client on my node, it doesn't pick up on the fact that the app
role has
changed, and run the new "git" recipe...has anyone else has this
problem? Is
this by design or am I doing something wrong?

You need to also update the role via knife on the chef server:

$ knife role from file roles/myrole.rb
$ knife role show myrole

Grig

On Wed, Jan 26, 2011 at 4:16 PM, Ben Marini Ben.Marini@akqa.com wrote:

Grig, we ended up removing the node and re bootstrapping to solve the
problem. The path of least resistance...

It's The Way Of The Cloud! :wink: