sunzi 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -5,16 +5,16 @@ Sunzi
5
5
  "The supreme art of war is to subdue the enemy without fighting." - Sunzi
6
6
  ```
7
7
 
8
- Sunzi is a server provisioning tool for minimalists. Simplicity is the one and only goal - if Chef or Puppet is driving you nuts, try Sunzi.
8
+ Sunzi is the easiest server provisioning utility designed for mere mortals. If Chef or Puppet is driving you nuts, try Sunzi!
9
9
 
10
- Sunzi assumes that Linux distributions have (mostly) sane defaults.
10
+ Sunzi assumes that modern Linux distributions have (mostly) sane defaults and great package managers.
11
11
 
12
12
  Its design goals are:
13
13
 
14
- * **Single shell script.** A big-bang overwriting with loads of custom configurations makes it difficult to know **what you are actually doing** - instead, Sunzi let you keep track of as little diff from default as possible.
15
- * **No mysterious Ruby DSL involved.** Sunzi recipes are written in a plain shell script. Why? Because, most of the information about server configuration you get on the web is written in a set of shell commands. Why should you translate it into a proprietary DSL, rather than just copy-paste?
16
- * **Minimum dependencies.** No configuration server required. You don't even need a Ruby runtime on the remote server.
14
+ * **It's just shell script.** No clunky Ruby DSL involved. Sunzi recipes are written in a plain shell script. Why? Because, most of the information about server configuration on the web is written in shell commands. Just copy-paste them, why should you translate it into a proprietary, inconvenience DSL? Also, shell script is the greatest common denominator on minimum Linux installs.
15
+ * **Focus on diff from default.** No big-bang overwriting. Append or replace the smallest possible piece of data in a config file. Loads of custom configurations makes it difficult to understand what you are really doing.
17
16
  * **Always use the root user.** Think twice before blindly assuming you need a regular user - it doesn't add any security benefit for server provisioning, it just adds extra verbosity for nothing. However, it doesn't mean that you shouldn't create regular users with Sunzi - feel free to write your own recipes.
17
+ * **Minimum dependencies.** No configuration server required. You don't even need a Ruby runtime on the remote server.
18
18
 
19
19
  Quickstart
20
20
  ----------
data/lib/sunzi/cli.rb CHANGED
@@ -15,7 +15,7 @@ module Sunzi
15
15
  end
16
16
  end
17
17
 
18
- # map "cr" => :create
18
+ # map "c" => :create
19
19
  # map "d" => :deploy
20
20
 
21
21
  desc "create [PROJECT]", "Create sunzi project"
@@ -42,8 +42,11 @@ module Sunzi
42
42
  port ||= 22
43
43
  user, domain = host.split('@')
44
44
 
45
+ # The host key might change when we instantiate a new VM, so
46
+ # we remove (-R) the old host key from known_hosts.
47
+ `ssh-keygen -R #{domain} 2> /dev/null`
48
+
45
49
  commands = <<-EOS
46
- ssh-keygen -R #{domain}
47
50
  cd remote
48
51
  tar cz . | ssh -o 'StrictHostKeyChecking no' #{host} -p #{port} '
49
52
  rm -rf ~/sunzi &&
@@ -57,11 +60,11 @@ module Sunzi
57
60
  stdin.close
58
61
  t = Thread.new(stderr) do |terr|
59
62
  while (line = terr.gets)
60
- print "\e[31m#{line}\e[0m"
63
+ print shell.set_color(line, :red, true)
61
64
  end
62
65
  end
63
66
  while (line = stdout.gets)
64
- print "\e[32m#{line}\e[0m"
67
+ print print shell.set_color(line, :green, true)
65
68
  end
66
69
  t.join
67
70
  end
data/lib/sunzi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sunzi
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/sunzi.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Kenn Ejima"]
9
9
  s.email = ["kenn.ejima@gmail.com"]
10
10
  s.homepage = "http://github.com/kenn/sunzi"
11
- s.summary = %q{Server provisioning tool for minimalists}
12
- s.description = %q{Server provisioning tool for minimalists}
11
+ s.summary = %q{Server provisioning utility for minimalists}
12
+ s.description = %q{Server provisioning utility for minimalists}
13
13
 
14
14
  s.rubyforge_project = "sunzi"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunzi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &2156394360 !ruby/object:Gem::Requirement
16
+ requirement: &2152751920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,8 +21,8 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156394360
25
- description: Server provisioning tool for minimalists
24
+ version_requirements: *2152751920
25
+ description: Server provisioning utility for minimalists
26
26
  email:
27
27
  - kenn.ejima@gmail.com
28
28
  executables:
@@ -67,5 +67,5 @@ rubyforge_project: sunzi
67
67
  rubygems_version: 1.8.15
68
68
  signing_key:
69
69
  specification_version: 3
70
- summary: Server provisioning tool for minimalists
70
+ summary: Server provisioning utility for minimalists
71
71
  test_files: []