solokit 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/README.markdown +29 -0
  2. data/chef/roles/base.json +13 -0
  3. data/chef/server.json +5 -0
  4. data/chef/solo.rb +6 -0
  5. data/cookbooks/site/users/definitions/add_keys.rb +45 -0
  6. data/cookbooks/site/users/recipes/default.rb +34 -0
  7. data/cookbooks/upstream/apt/files/default/apt-cacher +9 -0
  8. data/cookbooks/upstream/apt/files/default/apt-cacher.conf +144 -0
  9. data/cookbooks/upstream/apt/files/default/apt-proxy-v2.conf +50 -0
  10. data/cookbooks/upstream/apt/metadata.json +51 -0
  11. data/cookbooks/upstream/apt/metadata.rb +11 -0
  12. data/cookbooks/upstream/apt/recipes/cacher.rb +42 -0
  13. data/cookbooks/upstream/apt/recipes/default.rb +33 -0
  14. data/cookbooks/upstream/apt/recipes/proxy.rb +34 -0
  15. data/cookbooks/upstream/ruby-shadow/attributes/ruby-shadow.rb +1 -0
  16. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/HISTORY +34 -0
  17. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/MANIFEST +7 -0
  18. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/README +79 -0
  19. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/README.euc +80 -0
  20. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/depend +1 -0
  21. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/extconf.rb +26 -0
  22. data/cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/shadow.c +281 -0
  23. data/cookbooks/upstream/ruby-shadow/recipes/default.rb +15 -0
  24. data/cookbooks/upstream/sudo/attributes/sudoers.rb +21 -0
  25. data/cookbooks/upstream/sudo/metadata.json +96 -0
  26. data/cookbooks/upstream/sudo/metadata.rb +31 -0
  27. data/cookbooks/upstream/sudo/recipes/default.rb +33 -0
  28. data/cookbooks/upstream/sudo/templates/default/sudoers.erb +22 -0
  29. data/cookbooks/upstream/users/attributes/default.rb +4 -0
  30. data/cookbooks/upstream/users/definitions/add_keys.rb +38 -0
  31. data/cookbooks/upstream/users/libraries/roles.rb +17 -0
  32. data/cookbooks/upstream/users/metadata.json +38 -0
  33. data/cookbooks/upstream/users/metadata.rb +4 -0
  34. data/cookbooks/upstream/users/recipes/default.rb +17 -0
  35. data/cookbooks/upstream/users/templates/default/authorized_keys.erb +5 -0
  36. data/lib/chef.rb +11 -10
  37. data/lib/solokit/version.rb +1 -1
  38. metadata +38 -4
  39. data/README +0 -1
@@ -0,0 +1,38 @@
1
+ {
2
+ "replacing": {
3
+
4
+ },
5
+ "long_description": "",
6
+ "attributes": {
7
+
8
+ },
9
+ "maintainer": "37signals",
10
+ "recommendations": {
11
+
12
+ },
13
+ "license": "Apache v2.0",
14
+ "recipes": {
15
+ "users": ""
16
+ },
17
+ "maintainer_email": "sysadmins@37signals.com",
18
+ "suggestions": {
19
+
20
+ },
21
+ "dependencies": {
22
+
23
+ },
24
+ "conflicting": {
25
+
26
+ },
27
+ "platforms": {
28
+
29
+ },
30
+ "description": "Configures users and groups",
31
+ "version": "0.1.0",
32
+ "name": "users",
33
+ "providing": {
34
+ "users": [
35
+
36
+ ]
37
+ }
38
+ }
@@ -0,0 +1,4 @@
1
+ maintainer "37signals"
2
+ maintainer_email "sysadmins@37signals.com"
3
+ description "Configures users and groups"
4
+ version "0.1"
@@ -0,0 +1,17 @@
1
+ include_recipe "ruby-shadow"
2
+
3
+ if node[:users]
4
+ node[:users].keys.each do |username|
5
+ config = node[:users][username]
6
+ user username do
7
+ comment config[:comment]
8
+ home "/home/#{username}"
9
+ shell "/bin/bash"
10
+ password config[:password]
11
+ supports :manage_home => true
12
+ action [:create, :manage]
13
+ end
14
+
15
+ add_keys username
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ <% @keys.each do |name, key| %>
2
+ # <%= name %>
3
+ <%= key %>
4
+ <% end %>
5
+
data/lib/chef.rb CHANGED
@@ -14,15 +14,16 @@ module Solokit
14
14
  end
15
15
 
16
16
  def upload(root = "/")
17
+ solokit_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
17
18
  @ssh.run("rm -rf #{root}var/chef-solo", false) &&
18
- @ssh.run("rm -rf #{root}etc/chef", false) &&
19
- upload_files("cookbooks/upstream/", "#{root}var/chef-solo/upstream-cookbooks") &&
20
- upload_files("cookbooks/site/", "#{root}var/chef-solo/site-cookbooks") &&
21
- (File.exists?("envs/#{@env}/cookbooks") ?
22
- upload_files("envs/#{@env}/cookbooks/*", "#{root}var/chef-solo/site-cookbooks") :
23
- true) &&
24
- upload_files("chef/*", "#{root}etc/chef") &&
25
- upload_files("envs/#{@env}/chef/", "#{root}etc/chef")
19
+ @ssh.run("rm -rf #{root}etc/chef", false) &&
20
+ upload_files("#{solokit_path}/cookbooks/upstream/", "#{root}var/chef-solo/upstream-cookbooks") &&
21
+ upload_files("#{solokit_path}/cookbooks/site/", "#{root}var/chef-solo/site-cookbooks") &&
22
+ upload_files("cookbooks/upstream/", "#{root}var/chef-solo/upstream-cookbooks") &&
23
+ upload_files("cookbooks/site/", "#{root}var/chef-solo/site-cookbooks") &&
24
+ upload_files("envs/#{@env}/cookbooks/*", "#{root}var/chef-solo/site-cookbooks") &&
25
+ upload_files("chef/*", "#{root}etc/chef") &&
26
+ upload_files("envs/#{@env}/chef/", "#{root}etc/chef")
26
27
  end
27
28
 
28
29
  def run(debug = false, root = "/")
@@ -48,8 +49,8 @@ module Solokit
48
49
  end
49
50
 
50
51
  def upload_files(from, to)
51
- @ssh.run("mkdir -p #{to}") &&
52
- @ssh.rsync(from, to, true)
52
+ return true unless File.exists?(from)
53
+ @ssh.run("mkdir -p #{to}") && @ssh.rsync(from, to, true)
53
54
  end
54
55
 
55
56
  def installed?
@@ -1,3 +1,3 @@
1
1
  module Solokit
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solokit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Joakim Kolsj\xC3\xB6"
@@ -63,8 +63,42 @@ files:
63
63
  - Gemfile
64
64
  - Gemfile.lock
65
65
  - LICENCE
66
- - README
66
+ - README.markdown
67
67
  - Rakefile
68
+ - chef/roles/base.json
69
+ - chef/server.json
70
+ - chef/solo.rb
71
+ - cookbooks/site/users/definitions/add_keys.rb
72
+ - cookbooks/site/users/recipes/default.rb
73
+ - cookbooks/upstream/apt/files/default/apt-cacher
74
+ - cookbooks/upstream/apt/files/default/apt-cacher.conf
75
+ - cookbooks/upstream/apt/files/default/apt-proxy-v2.conf
76
+ - cookbooks/upstream/apt/metadata.json
77
+ - cookbooks/upstream/apt/metadata.rb
78
+ - cookbooks/upstream/apt/recipes/cacher.rb
79
+ - cookbooks/upstream/apt/recipes/default.rb
80
+ - cookbooks/upstream/apt/recipes/proxy.rb
81
+ - cookbooks/upstream/ruby-shadow/attributes/ruby-shadow.rb
82
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/HISTORY
83
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/MANIFEST
84
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/README
85
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/README.euc
86
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/depend
87
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/extconf.rb
88
+ - cookbooks/upstream/ruby-shadow/files/default/shadow-1.4.1/shadow.c
89
+ - cookbooks/upstream/ruby-shadow/recipes/default.rb
90
+ - cookbooks/upstream/sudo/attributes/sudoers.rb
91
+ - cookbooks/upstream/sudo/metadata.json
92
+ - cookbooks/upstream/sudo/metadata.rb
93
+ - cookbooks/upstream/sudo/recipes/default.rb
94
+ - cookbooks/upstream/sudo/templates/default/sudoers.erb
95
+ - cookbooks/upstream/users/attributes/default.rb
96
+ - cookbooks/upstream/users/definitions/add_keys.rb
97
+ - cookbooks/upstream/users/libraries/roles.rb
98
+ - cookbooks/upstream/users/metadata.json
99
+ - cookbooks/upstream/users/metadata.rb
100
+ - cookbooks/upstream/users/recipes/default.rb
101
+ - cookbooks/upstream/users/templates/default/authorized_keys.erb
68
102
  - lib/chef.rb
69
103
  - lib/configuration.rb
70
104
  - lib/solokit.rb
data/README DELETED
@@ -1 +0,0 @@
1
- Extracting out some code I use to provision servers with chef-solo. Only supports ubuntu.