Skip to content

Commit e38f46d

Browse files
committed
feat: adds access cookbook
1 parent f98d2f7 commit e38f46d

File tree

5 files changed

+64
-0
lines changed

5 files changed

+64
-0
lines changed

Berksfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "https://supermarket.getchef.com"
2+
3+
metadata

attributes/default.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
default['access']['users'] = {}
2+
default['access']['groups'] = {}
3+
default['access']['keys'] = []
4+
5+
default['access']['sudo']['users'] = {}
6+
default['access']['sudo']['groups'] = {}

metadata.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name "access"
2+
maintainer "Markup"
3+
description "Creates users for deployment / file access"
4+
version "0.0.1"
5+
depends "user"

recipes/default.rb

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
node['access']['users'].each do |name, value|
2+
# Create the user as group nobody to start with.. (jumpcloud fix)
3+
nobody_group_id = `id -g nobody`
4+
5+
user_account name do
6+
comment "#{name}"
7+
home "/home/#{name}"
8+
ssh_keys node['access']['keys']
9+
shell "/bin/bash"
10+
create_group false
11+
gid nobody_group_id.delete("\n").to_i
12+
end
13+
14+
group name do
15+
action :create
16+
group_name "#{name}"
17+
append true
18+
members ["#{name}"]
19+
end
20+
end
21+
22+
node['access']['groups'].each do |user, groups|
23+
groups.each do |group|
24+
bash 'Create group if required' do
25+
code "groupadd -f #{group}"
26+
end
27+
end
28+
29+
execute "User groups for #{user}" do
30+
groups = groups.join(',')
31+
command "usermod -G #{groups} #{user}"
32+
action :run
33+
end
34+
end

recipes/sudo.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
node['access']['sudo']['users'].each do |user, value|
2+
sudo "#{user}" do
3+
user "#{user}"
4+
commands value['commands']
5+
nopasswd true
6+
end
7+
end
8+
9+
node['access']['sudo']['groups'].each do |group, value|
10+
sudo "#{group}" do
11+
group value['group']
12+
commands value['commands']
13+
nopasswd true
14+
runas value['runas']
15+
end
16+
end

0 commit comments

Comments
 (0)