4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/danarchy_deploy/users.rb', line 4
def self.new(deployment, options)
puts "\n" + self.name
(useradd_result, userdel_result, archives_result) = nil
deployment[:users].each do |user|
puts " > Checking if user '#{user[:username]}' already exists."
usercheck_result = usercheck(user, options)
if usercheck_result[:stdout]
puts " - User: #{user[:username]} already exists!"
else
group = { groupname: user[:username] }
group[:gid] = user[:gid] ? user[:gid] : nil
group[:system] = user[:system] ? user[:system] : nil
groupcheck_result = DanarchyDeploy::Groups.groupcheck(group, options)
if !groupcheck_result[:stdout] && group[:gid]
puts " |+ Adding group: #{group[:groupname]}"
DanarchyDeploy::Groups.groupadd(group, options)
end
puts " |+ Adding user: #{user[:username]}"
useradd_result = useradd(user, options)
end
if !options[:pretend]
puts "\n > Checking groups for user: #{user[:username]}"
if user[:groups] && checkgroups(usercheck_result, user, options) == false
updategroups(user, options)
puts " |+ Updated groups: #{user[:groups].join(',')}"
else
puts " - No change to groups needed."
end
if user[:authorized_keys]
puts "\n > Checking on #{user[:authorized_keys].count} authorized_keys for user: #{user[:username]}"
authorized_keys(user)
end
if user[:sudoer]
puts "\n > Checking sudo rules for user: #{user[:username]}"
sudoer(user)
end
end
if user[:archives] && !user[:archives].empty?
puts " > Deploying archives for #{user[:username]}"
DanarchyDeploy::Archiver.new(user[:archives], options)
end
end
deployment
end
|