Hi,
I have some trouble with "notifies".. hope it's easy to explain to a chef-starter :)
I've modified the "users" cookbook [1] to set an empty password and (usermod -p "") and forcing password change on next login (chage -d 0).
Therefore I've extended the cookbook inside the
> search(:users, 'groups:sysadmin') do |u|
loop with the following block:
> script "set_empty_password" do
> interpreter "bash"
> user "root"
> action :nothing
>
> code <<-EOH
> echo Running for #{u[:id]}
> # set empty password
> usermod -p "" #{u[:id]}
> # force password change on next login
> chage -d 0 #{u[:id]}
> EOH
> end
To notify it upon user creation, I've added
> notifies :run, "script[set_empty_password]", :immediately
to the following block:
> user u['id'] do
> uid u['uid']
> gid u['gid']
> shell u['shell']
> comment u['comment']
> supports :manage_home => true
> home home_dir
> notifies :run, "script[set_empty_password]", :immediately
> notifies :create, "ruby_block[reset group list]", :immediately
> end
My problem, however, is that in the bash script, #{u[:id]} is always the user name of the user returned as *last* from search (so for every user it always modifies the same one). set_empty_password is executed, but with wrong data..
I've uploaded the complete file here:
https://gist.github.com/1523594
Can you tell me the reason for this?
Thanks a lot for your help!
Steffen
Archive powered by MHonArc 2.6.16.