[chef] Re: env-independent recipes don't run within base role


Chronological Thread 
  • From: Noah Kantrowitz < >
  • To:
  • Subject: [chef] Re: env-independent recipes don't run within base role
  • Date: Wed, 14 Sep 2011 16:44:10 -0700

The env-specific run-lists entirely override the non-env run-list if one 
exists.

--Noah

On Sep 14, 2011, at 3:51 PM, 

 wrote:

> 
> hiya,
> 
> i guess i'm doing something wrong here. i have defined a base role.
> in the base role definition, i desire a set of common recipes to execute
> regardless of the environment setting (recipe[snmp], recipe[toolbin]).
> i also desire to have certain users created depending on which
> environment is set.
> 
> however, when the client runs, the environment-independent recipes
> aren't running. how can i accomplish this? or do i need to think about
> this in a different way? (e.g. i could move recipe[snmp] to role[snmp],
> adding the latter to the node's run list, but that seems silly.)
> 
> 
> lots of detail below. thanks much.
> kallen
> 
> 
> given base.json below, i'd expect a node in env "prod" to run the
> following from the base role: recipe[users::ops], recipe[snmp],
> recipe[toolbin]. but, only recipe[users::ops] runs.
> 
> 
> chefsrv:~/sbox/ops/chef-repo$ cat roles/base.json 
> {
>  "name": "base",
>  "default_attributes": {
>  },
>  "json_class": "Chef::Role",
>  "env_run_lists": {
>    "prod" : [
>      "recipe[users::ops]"
>    ],
>    "dev": [
>      "recipe[users::ops]",
>      "recipe[users::eng]"
>    ]
>  },
>  "run_list": [
>    "recipe[snmp]",
>    "recipe[toolbin]"
>  ],
>  "description": "Base system",
>  "chef_type": "role",
>  "override_attributes": {
>  }
> }
> 
> 
> [sous-chef1 ~]# tail -1 /etc/chef/client.rb 
> environment "dev"
> 
> 
> 
> chefsrv:~/sbox/ops/chef-repo$ knife node show sous-chef1.dev.hewwoh.com -r
> run_list: 
>    role[base]
>    role[dns-client]
>    role[mail-client]
>    role[syslog-ng-client]
> 
> 
> NOTE: all of the above roles do run on the client. but again, the
> environment-independent recipes within the base role don't run.
> 
> 
> chefsrv:~/sbox/ops/chef-repo$ knife role show base
> chef_type:            role
> default_attributes:   
> description:          Base system
> env_run_lists:       
>  prod:   recipe[users::ops]
>  dev:    recipe[users::ops], recipe[users::eng]
> json_class:           Chef::Role
> name:                 base
> override_attributes:  
> run_list:             recipe[snmp], recipe[toolbin]
> 
> 
> chefsrv:~/sbox/ops/chef-repo$ knife environment show dev
> chef_type:            environment
> cookbook_versions:    
> default_attributes:  
>  resolver: 
>    domain:       dev.hewwoh.com
>    nameservers: 
>        10.69.69.69
>        10.69.69.68
>        10.69.69.67
>    search:       dev.hewwoh.com
> description:          Development environment (dev)
> json_class:           Chef::Environment
> name:                 dev
> override_attributes:  
> 




Archive powered by MHonArc 2.6.16.

§