some 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +39 -0
- data/VERSION +1 -1
- data/bin/some +12 -11
- data/lib/some.rb +2 -2
- metadata +10 -12
- data/TODO +0 -33
data/README.md
CHANGED
@@ -107,11 +107,50 @@ NIFTY Cloud 上で手軽にサーバーを立ち上げることができます
|
|
107
107
|
* サーバー作成の際に something という名前の SSH キーと FW を作成します
|
108
108
|
* SSH キーは ~/.some/keypair.pem に保存されます
|
109
109
|
|
110
|
+
## その他のコマンド
|
111
|
+
|
112
|
+
作者が欲しい機能を自己満足で盛り込んでいくコーナー。
|
113
|
+
|
114
|
+
### some reset
|
115
|
+
|
116
|
+
some から作成したインスタンスを全て削除し、some が裏側で作成した something という名前の FW と something という名前のキーペアを削除する。
|
117
|
+
|
118
|
+
### some cap
|
119
|
+
|
120
|
+
some コマンドで作成したインスタンスに対して capistrano を実行できる。
|
121
|
+
|
122
|
+
some cap shell
|
123
|
+
some cap invoke ROLES="server1,server2" COMMAND="hostname"
|
124
|
+
|
125
|
+
Capfile は some list -f capfile で参照可能。
|
126
|
+
|
127
|
+
### some cache
|
128
|
+
|
129
|
+
インスタンス一覧を ~/.some/cache にキャッシュする。
|
130
|
+
|
131
|
+
### some sync
|
132
|
+
|
133
|
+
some コマンドで作成した全てのインスタンスで ohai を実行して node 情報を取得し、全てのインスタンスの /var/chef/data_bags/hostname.json に配置する。
|
134
|
+
[chef-solo-search](https://github.com/edelight/chef-solo-search) と組み合わせると Chef サーバがなくてもレシピ内で search メソッドが使える。
|
135
|
+
|
136
|
+
### some batch
|
137
|
+
|
138
|
+
some コマンドを一括実行できる。
|
139
|
+
|
140
|
+
### some start/stop
|
141
|
+
|
142
|
+
インスタンスを起動・停止することができる。
|
143
|
+
|
144
|
+
### some volumes/create_volume/attach_volume/detach_volume/destroy_volume
|
145
|
+
|
146
|
+
ディスクを作成・一覧・アタッチ・デタッチ・削除することができる。
|
147
|
+
|
110
148
|
## TODO
|
111
149
|
|
112
150
|
* image_id=17 (Ubuntu 10.04) で bootstrap できない (apt-get update; apt-get install -y curl する必要あり)
|
113
151
|
* かっこいいロゴを github ページにつける、あるいは github pages を使ってほーむぺーじを作る
|
114
152
|
* デフォルトの設定ファイルを同梱するようにする
|
153
|
+
* FW の CIDR に 0.0.0.0/0 以外も設定できるようにする
|
115
154
|
|
116
155
|
## ライセンス
|
117
156
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
data/bin/some
CHANGED
@@ -8,6 +8,7 @@ require 'thor'
|
|
8
8
|
class CLI < Thor
|
9
9
|
desc "launch [<role>]", "launch an instance as role, or omit to ssh to vanilla instance"
|
10
10
|
option :name, :type => :string, :aliases => '-n', :desc => 'instance name'
|
11
|
+
option :skip, :aliases => '-s', :desc => 'skip ssh login'
|
11
12
|
def launch(role=nil)
|
12
13
|
id = task("Launch instance") { some.launch(options[:name]) }
|
13
14
|
host = task("Acquire hostname") { some.wait_for_hostname(id) }
|
@@ -15,11 +16,13 @@ class CLI < Thor
|
|
15
16
|
|
16
17
|
if role
|
17
18
|
task("Bootstrap chef") { some.bootstrap_chef(host) }
|
18
|
-
task("Setup #{role}") { some.setup_role(host, role) }
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
task("Setup #{role}") { some.setup_role(host, role, id) }
|
20
|
+
else
|
21
|
+
unless options[:skip]
|
22
|
+
puts "\nLogging you in via ssh. Type 'exit' or Ctrl-D to return to your local system."
|
23
|
+
puts '-' * 78
|
24
|
+
connect_ssh(host)
|
25
|
+
end
|
23
26
|
end
|
24
27
|
end
|
25
28
|
|
@@ -42,7 +45,7 @@ class CLI < Thor
|
|
42
45
|
def role(role, id=nil)
|
43
46
|
inst = some.find(id) || some.running.first || abort("No running instances")
|
44
47
|
task "Setup #{role}" do
|
45
|
-
some.setup_role(inst[:hostname], role)
|
48
|
+
some.setup_role(inst[:hostname], role, inst[:instance_id])
|
46
49
|
end
|
47
50
|
end
|
48
51
|
|
@@ -194,7 +197,7 @@ class CLI < Thor
|
|
194
197
|
task("Wait to stop") { some.wait_to_stop(inst[:instance_id]) }
|
195
198
|
end
|
196
199
|
|
197
|
-
device ||= '/dev/
|
200
|
+
device ||= '/dev/sdb'
|
198
201
|
task("Attach #{vol_id} to #{inst_id} as #{device}") do
|
199
202
|
some.attach(vol_id, inst[:instance_id], device)
|
200
203
|
end
|
@@ -202,10 +205,8 @@ class CLI < Thor
|
|
202
205
|
some.reload
|
203
206
|
inst = some.find(inst[:instance_id])
|
204
207
|
if inst[:status] == 'stopped' && orig_status == 'running'
|
205
|
-
task(
|
206
|
-
|
207
|
-
task("Wait to start") { some.wait_for_hostname(inst[:instance_id]) }
|
208
|
-
end
|
208
|
+
task('Start instance') { some.start(inst[:instance_id]); "done" }
|
209
|
+
task("Wait to start") { some.wait_for_hostname(inst[:instance_id]) }
|
209
210
|
end
|
210
211
|
end
|
211
212
|
|
data/lib/some.rb
CHANGED
@@ -285,9 +285,9 @@ class Some
|
|
285
285
|
ssh(hostname, commands)
|
286
286
|
end
|
287
287
|
|
288
|
-
def setup_role(hostname, role)
|
288
|
+
def setup_role(hostname, role, inst_id)
|
289
289
|
dna = JSON.parse(config['role'][role])
|
290
|
-
dna.update("some" => {"instances" => list})
|
290
|
+
dna.update("some" => {"hostname" => inst_id, "instances" => list})
|
291
291
|
commands = [
|
292
292
|
"echo \'#{JSON.pretty_generate(dna)}\' > /etc/chef/dna.json",
|
293
293
|
"chef-solo -r #{config['cookbooks_url']}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: some
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
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: 2013-04-
|
12
|
+
date: 2013-04-15 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nifty-cloud-sdk
|
16
|
-
requirement: &
|
16
|
+
requirement: &52156760 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - =
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.11.beta1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *52156760
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
requirement: &
|
27
|
+
requirement: &52156240 !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: *
|
35
|
+
version_requirements: *52156240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: net-ssh
|
38
|
-
requirement: &
|
38
|
+
requirement: &52155700 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *52155700
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: capistrano
|
49
|
-
requirement: &
|
49
|
+
requirement: &52155180 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *52155180
|
58
58
|
description: sumo clone for NIFTY Cloud
|
59
59
|
email: tidnlyam@gmail.com
|
60
60
|
executables:
|
@@ -62,11 +62,9 @@ executables:
|
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files:
|
64
64
|
- README.md
|
65
|
-
- TODO
|
66
65
|
files:
|
67
66
|
- README.md
|
68
67
|
- Rakefile
|
69
|
-
- TODO
|
70
68
|
- VERSION
|
71
69
|
- bin/some
|
72
70
|
- lib/some.rb
|
data/TODO
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
* some コマンドがどんどん便利になっていく
|
2
|
-
|
3
|
-
自分で欲しい機能をガンガン盛り込んでいったら、便利すぎて手放せない感じになってきた。
|
4
|
-
|
5
|
-
** some reset
|
6
|
-
|
7
|
-
some コマンドで作成したすべてのインスタンス・FW・キーを削除する。
|
8
|
-
|
9
|
-
** some cap
|
10
|
-
|
11
|
-
some コマンドで作成したインスタンスに対して capistrano を実行できる。
|
12
|
-
|
13
|
-
some list
|
14
|
-
some cap invoke ROLES="server1,server2" COMMAND="hostname"
|
15
|
-
|
16
|
-
** some cache
|
17
|
-
|
18
|
-
インスタンス一覧を ~/.some/cache にキャッシュする。
|
19
|
-
|
20
|
-
** some sync
|
21
|
-
|
22
|
-
some コマンドで作成したすべてのインスタンスから ohai 情報を取得し、
|
23
|
-
すべてのインスタンスの /var/chef/data_bags/hostname.json に配置する。
|
24
|
-
chef-solo-search と組み合わせると Chef サーバがなくてもレシピで search が使える。
|
25
|
-
munin とかで使うと便利。
|
26
|
-
|
27
|
-
** some batch
|
28
|
-
|
29
|
-
some コマンドを一括実行できる。
|
30
|
-
|
31
|
-
** some start/stop
|
32
|
-
|
33
|
-
** some volumes/create_volume/attach_volume/detach_volume
|