solokit 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/README.markdown +3 -3
- data/lib/chef.rb +20 -13
- data/lib/solokit/version.rb +1 -1
- metadata +4 -3
data/CHANGELOG
ADDED
data/README.markdown
CHANGED
@@ -12,7 +12,7 @@ Cookbooks and configuration
|
|
12
12
|
|
13
13
|
Solokit includes some defaults so that you don't have to repeat the same things for each server. Any "cookbook" or "chef" directories in the root of your project will be copied over the defaults. The same goes for any "cookbook" or "chef" directories for a specific environment.
|
14
14
|
|
15
|
-
An environment can be anything from one server to a
|
15
|
+
An environment can be anything from one server to a complete cluster. Within an environment you can run specific configuration for each server, but Solokit defaults to "server.json".
|
16
16
|
|
17
17
|
For each layer, Solokit looks for a directory structure like this:
|
18
18
|
|
@@ -61,7 +61,7 @@ Add user configuration to users.yml (optional, but you need to provide a chef/ro
|
|
61
61
|
hash: $1$8jLGWmPB$yFGmUThzbL0DMarc1CIY1/
|
62
62
|
keys: user@computer
|
63
63
|
|
64
|
-
##
|
64
|
+
## Shared users
|
65
65
|
deploy:
|
66
66
|
keys: group/developers
|
67
67
|
|
@@ -70,7 +70,7 @@ Add user configuration to users.yml (optional, but you need to provide a chef/ro
|
|
70
70
|
users: group/developers deploy
|
71
71
|
sudo: group/developers
|
72
72
|
|
73
|
-
|
73
|
+
Add keys below "public_keys" that have names ending in ".pub".
|
74
74
|
|
75
75
|
mkdir -p public_keys
|
76
76
|
echo "your key" > public_keys/your_key@computer.pub
|
data/lib/chef.rb
CHANGED
@@ -2,6 +2,8 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'ssh.rb'))
|
|
2
2
|
|
3
3
|
module Solokit
|
4
4
|
class Chef
|
5
|
+
TEMP_PATH="/tmp/solokit_upload"
|
6
|
+
|
5
7
|
def initialize(ip, name, env, debug_ssh, user = 'root')
|
6
8
|
@ip, @name, @env = ip, name, env
|
7
9
|
@ssh = SSH.new(ip, user, debug_ssh)
|
@@ -15,16 +17,17 @@ module Solokit
|
|
15
17
|
|
16
18
|
def upload(root = "/")
|
17
19
|
solokit_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
|
21
|
+
add_upload("#{solokit_path}/cookbooks/upstream/*", "#{root}var/chef-solo/upstream-cookbooks") &&
|
22
|
+
add_upload("#{solokit_path}/cookbooks/site/*", "#{root}var/chef-solo/site-cookbooks") &&
|
23
|
+
add_upload("cookbooks/upstream/*", "#{root}var/chef-solo/upstream-cookbooks") &&
|
24
|
+
add_upload("cookbooks/site/*", "#{root}var/chef-solo/site-cookbooks") &&
|
25
|
+
add_upload("envs/#{@env}/cookbooks/*", "#{root}var/chef-solo/site-cookbooks") &&
|
26
|
+
add_upload("#{solokit_path}/chef/*", "#{root}etc/chef") &&
|
27
|
+
add_upload("chef/*", "#{root}etc/chef") &&
|
28
|
+
add_upload("envs/#{@env}/chef/*", "#{root}etc/chef") &&
|
29
|
+
@ssh.run("rm -rf #{root}var/chef-solo #{root}etc/chef", false) &&
|
30
|
+
@ssh.rsync("#{TEMP_PATH}#{root}", root, true)
|
28
31
|
end
|
29
32
|
|
30
33
|
def run(debug = false, root = "/")
|
@@ -49,9 +52,12 @@ module Solokit
|
|
49
52
|
"PATH=\"#{root}ruby/bin:/sbin:$PATH\""
|
50
53
|
end
|
51
54
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
55
|
+
def add_upload(from, to)
|
56
|
+
if File.exists?(from.gsub(/\*/, ''))
|
57
|
+
system("mkdir -p #{TEMP_PATH}#{to} && cp -rf #{from} /tmp/solokit_upload#{to}")
|
58
|
+
else
|
59
|
+
true
|
60
|
+
end
|
55
61
|
end
|
56
62
|
|
57
63
|
def installed?
|
@@ -59,3 +65,4 @@ module Solokit
|
|
59
65
|
end
|
60
66
|
end
|
61
67
|
end
|
68
|
+
|
data/lib/solokit/version.rb
CHANGED
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:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Joakim Kolsj\xC3\xB6"
|
@@ -60,6 +60,7 @@ extra_rdoc_files: []
|
|
60
60
|
files:
|
61
61
|
- .gitignore
|
62
62
|
- .rvmrc
|
63
|
+
- CHANGELOG
|
63
64
|
- Gemfile
|
64
65
|
- Gemfile.lock
|
65
66
|
- LICENCE
|