I am new to chef and want to use the rabbitmq user_management recipe without the default behavior of adding a rabbitmq guest account.
I am using chef-server 11.1.3 and rabbitmq cookbook version 3.3.0 (https://supermarket.getchef.com/cookbooks/rabbitmq) to install and configure rabbitmq 3.3.5 on ubuntu 14.04.
I defined a chef role where I use the user_management recipe and disabled_users to remove the guest account but with each chef-client run the guest account is first added to rabbitmq and then removed again (as you can see from the "- execute" lines in the client.log output below). What am I doing wrong?
/var/log/chef/client.log output
Recipe: rabbitmq::user_management
* rabbitmq_user[guest] action addRecipe: <Dynamically Defined Resource>
* execute[rabbitmqctl add_user guest] action run
- execute rabbitmqctl add_user guest 'guest'
Recipe: rabbitmq::user_management
* rabbitmq_user[guest] action set_tags (up to date)
* rabbitmq_user[guest] action set_permissionsRecipe: <Dynamically Defined Resource>
* execute[rabbitmqctl set_permissions guest ".*" ".*" ".*"] action run
- execute rabbitmqctl set_permissions guest ".*" ".*" ".*"
Recipe: rabbitmq::user_management
* rabbitmq_user[user1] action add (up to date)
* rabbitmq_user[user1] action set_tags (up to date)
* rabbitmq_user[user1] action set_permissionsRecipe: <Dynamically Defined Resource>
* execute[rabbitmqctl set_permissions -p / user1 ".*" ".*" ".*"] action run
- execute rabbitmqctl set_permissions -p / user1 ".*" ".*" ".*"
Recipe: rabbitmq::user_management
* rabbitmq_user[guest] action deleteRecipe: <Dynamically Defined Resource>
* execute[rabbitmqctl delete_user guest] action run
- execute rabbitmqctl delete_user guest
My Chef Role
{
"name": "server-rabbitmq-test",
"description": "testing",
"json_class": "Chef::Role",
"default_attributes": {
"rabbitmq": {
"version": "3.3.5",
"use_distro_version": "true",
"port": "5672",
"virtualhosts": [
"/vhost1"
],
"disabled_users": [
"guest"
],
"enabled_users": [
{
"name": "user1",
"password": "user1",
"tag": "user tag",
"rights": [
{
"vhost": "/vhost1",
"conf": ".*",
"write": ".*",
"read": ".*"
}
]
}
]
}
},
"override_attributes": {
},
"chef_type": "role",
"run_list": [
"recipe[rabbitmq]",
"recipe[rabbitmq::mgmt_console]",
"recipe[rabbitmq::policy_management]",
"recipe[rabbitmq::user_management]",
"recipe[rabbitmq::virtualhost_management]",
"recipe[rabbitmq::plugin_management]"
],
"env_run_lists": {
}
}
Modify rabbitmq cookbook????
I can stop the behavior by changing the rabbitmq/attributes/default.rb file from this:
# users
default['rabbitmq']['enabled_users'] =
[{ :name => 'guest', :password => 'guest', :rights =>
[{ :vhost => nil , :conf => '.*', :write => '.*', :read => '.*' }]
}]
To this:
# users
default['rabbitmq']['enabled_users'] = []
But there has to be a better way to do it, no?
Thanks!!