sunzi 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -18,7 +18,8 @@ Its design goals are:
18
18
 
19
19
  ### What's new:
20
20
 
21
- * v0.5: Role-based configuration supported. Reworked directory structure. (Incompatible with previous versions)
21
+ * v0.6: System function sunzi::silencer() added for succinct log messages.
22
+ * v0.5: Role-based configuration supported. Reworked directory structure. **Incompatible with previous versions**.
22
23
 
23
24
  Quickstart
24
25
  ----------
data/lib/sunzi/cli.rb CHANGED
@@ -40,6 +40,7 @@ module Sunzi
40
40
  template "templates/create/.gitignore", "#{project}/.gitignore"
41
41
  template "templates/create/sunzi.yml", "#{project}/sunzi.yml"
42
42
  template "templates/create/install.sh", "#{project}/install.sh"
43
+ template "templates/create/recipes/sunzi.sh", "#{project}/recipes/sunzi.sh"
43
44
  template "templates/create/recipes/ssh_key.sh", "#{project}/recipes/ssh_key.sh"
44
45
  template "templates/create/roles/app.sh", "#{project}/roles/app.sh"
45
46
  template "templates/create/roles/db.sh", "#{project}/roles/db.sh"
data/lib/sunzi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sunzi
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -1,14 +1,24 @@
1
1
  #!/bin/bash
2
2
 
3
- # This line is necessary for automated provisioning for Debian/Ubuntu
3
+ # Load base utility functions like sunzi::silencer()
4
+ source recipes/sunzi.sh
5
+
6
+ # This line is necessary for automated provisioning for Debian/Ubuntu.
7
+ # Remove if you're not on Debian/Ubuntu.
4
8
  export DEBIAN_FRONTEND=noninteractive
5
9
 
10
+ # Add Dotdeb repository. Recommended if you're using Debian. See http://www.dotdeb.org/about/
11
+ # source recipes/dotdeb.sh
12
+
6
13
  # SSH key
7
14
  source recipes/ssh_key.sh $(cat attributes/ssh_key)
8
15
 
9
- # Add Dotdeb repository
10
- source recipes/dotdeb.sh
11
-
12
- # Update apt catalog
16
+ # Update apt catalog. If you prefer less verbosity, use the sunzi::silencer version instead
13
17
  aptitude update
14
18
  aptitude -y safe-upgrade
19
+ # sunzi::silencer "aptitude update"
20
+ # sunzi::silencer "aptitude -y safe-upgrade"
21
+
22
+ # Install packages. If you prefer less verbosity, use the sunzi::silencer version instead
23
+ aptitude -y install git-core ntp
24
+ # sunzi::silencer "aptitude -y install git-core ntp"
@@ -5,6 +5,7 @@ if [ -f ~/.ssh/authorized_keys ]; then
5
5
  echo 'authorized_keys already created'
6
6
  else
7
7
  if [ -f "files/$1" ]; then
8
+ echo 'Creating authorized_keys'
8
9
  mkdir -p ~/.ssh
9
10
  cat "files/$1" > ~/.ssh/authorized_keys
10
11
  rm "files/$1"
@@ -0,0 +1,6 @@
1
+ # This file is used to define functions under the sunzi:: namespace.
2
+
3
+ function sunzi::silencer() {
4
+ echo "Running \"$@\""
5
+ eval "$@ > /dev/null 2>&1"
6
+ }
@@ -1,5 +1,5 @@
1
1
  # Install Database Server
2
2
 
3
- source recipes/mongodb-10gen.sh # MongoDB
4
- # source recipes/mysql-server.sh 5.5 # MySQL 5.5
5
- # source recipes/redis-server.sh # Redis
3
+ source recipes/mongodb-10gen.sh # MongoDB
4
+ # aptitude -q -y install mysql-server-5.5 # MySQL 5.5 - You may need to enable Dotdeb in install.sh first
5
+ # aptitude -y install redis-server # Redis - You may need to enable Dotdeb in install.sh first
@@ -1,4 +1,4 @@
1
1
  # Install Web server
2
2
 
3
- source recipes/nginx.sh # Nginx
4
- # source recipes/apache2.sh # Apache
3
+ aptitude -y install nginx # Nginx
4
+ # aptitude -y install apache2 # Apache
@@ -8,12 +8,8 @@ attributes:
8
8
  # Remote recipes here will be downloaded to compiled/recipes.
9
9
  recipes:
10
10
  rvm: https://raw.github.com/kenn/sunzi-recipes/master/ruby/rvm.sh
11
- dotdeb: https://raw.github.com/kenn/sunzi-recipes/master/debian/dotdeb.sh
12
- # nginx: https://raw.github.com/kenn/sunzi-recipes/master/debian/nginx.sh
13
- # apache2: https://raw.github.com/kenn/sunzi-recipes/master/debian/apache2.sh
11
+ # dotdeb: https://raw.github.com/kenn/sunzi-recipes/master/debian/dotdeb.sh
14
12
  # mongodb-10gen: https://raw.github.com/kenn/sunzi-recipes/master/debian/mongodb-10gen.sh
15
- # mysql-server: https://raw.github.com/kenn/sunzi-recipes/master/debian/mysql-server.sh
16
- # redis-server: https://raw.github.com/kenn/sunzi-recipes/master/debian/redis-server.sh
17
13
 
18
14
  # Files specified here will be copied to compiled/files.
19
15
  files:
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.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-05 00:00:00.000000000 Z
12
+ date: 2012-03-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &2165136600 !ruby/object:Gem::Requirement
16
+ requirement: &2165105300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2165136600
24
+ version_requirements: *2165105300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rainbow
27
- requirement: &2165136160 !ruby/object:Gem::Requirement
27
+ requirement: &2165104840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2165136160
35
+ version_requirements: *2165104840
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &2165135720 !ruby/object:Gem::Requirement
38
+ requirement: &2165104400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2165135720
46
+ version_requirements: *2165104400
47
47
  description: Server provisioning utility for minimalists
48
48
  email:
49
49
  - kenn.ejima@gmail.com
@@ -69,6 +69,7 @@ files:
69
69
  - lib/templates/create/.gitignore
70
70
  - lib/templates/create/install.sh
71
71
  - lib/templates/create/recipes/ssh_key.sh
72
+ - lib/templates/create/recipes/sunzi.sh
72
73
  - lib/templates/create/roles/app.sh
73
74
  - lib/templates/create/roles/db.sh
74
75
  - lib/templates/create/roles/web.sh