I am trying to implement a cookbook which would create users by reading passwords from attributes file ( non hash password ex: root@123)
And for this, my cookbook is as follows :
Contents of attributes file ( attributes/attr.rb )
default['my']['instance']['users'] = [ {uid: 1004,user_name:'m1',homedir:'/home/m1',password:'root@111'} {uid: 1003,user_name:'m2',homedir:'/home/m2',password:'root@222'}, {uid: 1002, user_name:'m3',homedir:'/home/m3',password:'root@333'} ]
Recipe :
password_hash='' node['my']['instance']['users'].each do |each_user| ruby_block "Generating hash password" do block do require 'digest/sha2' password=each_user['password'] salt=rand(36**8).to_s(36) shadow_hash=password.crypt("$6$" + salt) password_hash=shadow_hash end end user each_user['user_name'] do password "#{password_hash}" home each_user['homedir'] system true action :create manage_home true uid each_user['uid'] end end
After execution of the cookbook, respective users are created appropriately but passwords are set blank.
Looks like the variable which I am trying to access in the password attribute of user resource is not correct.
Please let me how can I resolve this.
Note: In my case, I don't want to use databags.