vagrant-sakura 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +33 -2
- data/lib/vagrant-sakura/action/run_instance.rb +8 -2
- data/lib/vagrant-sakura/config.rb +24 -6
- data/lib/vagrant-sakura/version.rb +1 -1
- data/locales/en.yml +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c61fa6c8644ac72445c9d5dd0982b8bf0643982
|
4
|
+
data.tar.gz: 167a4d696347a58a6481288b46affd9d1e419947
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 878ff0efe757034d392039fb4b8ae507efd39a57f770c1434ff68b3484ba145d3856fcb73b4f42aaaa9f9cc3445398009a0ca860fad786c9aab54ea46f013662
|
7
|
+
data.tar.gz: 0ad0dbda7287373dc57cc3f692d054ba6f992ced53b63c778606f129e956dd17677d78b65f6f1e9730c1e13dac98b14250a42f07048cb0381dedfe277f60050f
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -44,17 +44,19 @@ $ vagrant box add dummy https://github.com/tsahara/vagrant-sakura/raw/master/dum
|
|
44
44
|
```
|
45
45
|
|
46
46
|
次に、以下のような Vagrantfile を作成し、必要な情報を埋めてください。
|
47
|
+
**なお、以下の Vagrantfile は Vagrant 付属の "insecure key" でログインできる
|
48
|
+
サーバを作成します。実用する際は次節の「SSH 鍵の指定方法」を参考に安全な
|
49
|
+
SSH 鍵を設定してください。**
|
47
50
|
|
48
51
|
```Ruby
|
49
52
|
Vagrant.configure("2") do |config|
|
50
53
|
config.vm.box = "dummy"
|
51
54
|
config.ssh.username = "ubuntu"
|
52
|
-
config.ssh.private_key_path = File.expand_path "~/.ssh/id_rsa"
|
53
55
|
|
54
56
|
config.vm.provider :sakura do |sakura|
|
55
57
|
sakura.access_token = 'YOUR ACCESS TOKEN'
|
56
58
|
sakura.access_token_secret = 'YOUR ACCESS TOKEN SECRET'
|
57
|
-
sakura.
|
59
|
+
sakura.use_insecure_key = true
|
58
60
|
end
|
59
61
|
end
|
60
62
|
```
|
@@ -71,6 +73,35 @@ end
|
|
71
73
|
``SAKURA_ACCESS_TOKEN`` と ``SAKURA_ACCESS_TOKEN_SECRET``で指定することも
|
72
74
|
できます。
|
73
75
|
|
76
|
+
## SSH 鍵の指定方法
|
77
|
+
|
78
|
+
vagrant-sakura では、サーバにログインするための SSH 公開鍵を 3通りの方法で
|
79
|
+
設定できます。
|
80
|
+
|
81
|
+
1. コントロールパネルで設定済みの SSH 公開鍵をリソース ID で指定する。
|
82
|
+
対応する秘密鍵は ``override.ssh.private_key_path`` で指定できます。
|
83
|
+
```
|
84
|
+
sakura.sshkey_id = '101234567890'
|
85
|
+
override.ssh.private_key_path = File.expand_path("~/.ssh/vagrant")
|
86
|
+
```
|
87
|
+
|
88
|
+
2. SSH 公開鍵のパスを指定する。この方法では、ひとつサーバを作成する度に SSH
|
89
|
+
公開鍵リソースがひとつ作成されます。vagrant-sakura が SSH 公開鍵リソース
|
90
|
+
を削除することはないため、SSH 公開鍵リソースが不必要に増えてしまうことに
|
91
|
+
注意が必要です。
|
92
|
+
```
|
93
|
+
sakura.public_key_path = File.expand_path("~/.ssh/vagrant.pub")
|
94
|
+
override.ssh.private_key_path = File.expand_path("~/.ssh/vagrant")
|
95
|
+
```
|
96
|
+
|
97
|
+
3. Vagrant 付属の "insecure key" をそのまま使う。"insecure key" は安全性に
|
98
|
+
懸念があるため、``sakura.use_insecure_key`` を `true` にセットした時に
|
99
|
+
のみ利用されます。
|
100
|
+
```
|
101
|
+
sakura.use_insecure_key = true
|
102
|
+
```
|
103
|
+
|
104
|
+
|
74
105
|
## コマンド
|
75
106
|
`sakura-list-id` コマンドを使って、`Vagrantfile` で指定するリソース ID
|
76
107
|
を調べることができます。
|
@@ -22,6 +22,8 @@ module VagrantPlugins
|
|
22
22
|
disk_plan = env[:machine].provider_config.disk_plan
|
23
23
|
disk_source_archive = env[:machine].provider_config.disk_source_archive
|
24
24
|
sshkey_id = env[:machine].provider_config.sshkey_id
|
25
|
+
public_key_path = env[:machine].provider_config.public_key_path
|
26
|
+
use_insecure_key = env[:machine].provider_config.use_insecure_key
|
25
27
|
|
26
28
|
env[:ui].info(I18n.t("vagrant_sakura.creating_instance"))
|
27
29
|
env[:ui].info(" -- Server Name: #{server_name}")
|
@@ -97,9 +99,13 @@ module VagrantPlugins
|
|
97
99
|
}
|
98
100
|
if sshkey_id
|
99
101
|
data["SSHKey"] = { "ID" => sshkey_id }
|
102
|
+
elsif public_key_path
|
103
|
+
data["SSHKey"] = { "PublicKey" => File.read(public_key_path) }
|
104
|
+
elsif use_insecure_key
|
105
|
+
pubkey = Vagrant.source_root.join("keys", "vagrant.pub").read.chomp
|
106
|
+
data["SSHKey"] = { "PublicKey" => pubkey }
|
100
107
|
else
|
101
|
-
|
102
|
-
data["SSHKey"] = { "PublicKey" => File.read(path) }
|
108
|
+
raise 'failsafe'
|
103
109
|
end
|
104
110
|
response = api.put("/disk/#{diskid}/config", data)
|
105
111
|
# Config
|
@@ -28,6 +28,11 @@ module VagrantPlugins
|
|
28
28
|
# @return [String]
|
29
29
|
attr_accessor :disk_source_archive
|
30
30
|
|
31
|
+
# The pathname of the SSH public key to register on the server.
|
32
|
+
#
|
33
|
+
# @return [String]
|
34
|
+
attr_accessor :public_key_path
|
35
|
+
|
31
36
|
# The name of the server.
|
32
37
|
#
|
33
38
|
# @return [String]
|
@@ -43,6 +48,11 @@ module VagrantPlugins
|
|
43
48
|
# @return [String]
|
44
49
|
attr_accessor :sshkey_id
|
45
50
|
|
51
|
+
# Use insecure default key to login the server.
|
52
|
+
#
|
53
|
+
# @return [Boolean]
|
54
|
+
attr_accessor :use_insecure_key
|
55
|
+
|
46
56
|
# The ID of the zone.
|
47
57
|
attr_accessor :zone_id
|
48
58
|
|
@@ -52,9 +62,11 @@ module VagrantPlugins
|
|
52
62
|
@disk_id = UNSET_VALUE
|
53
63
|
@disk_plan = UNSET_VALUE
|
54
64
|
@disk_source_archive = UNSET_VALUE
|
65
|
+
@public_key_path = UNSET_VALUE
|
55
66
|
@server_name = UNSET_VALUE
|
56
67
|
@server_plan = UNSET_VALUE
|
57
68
|
@sshkey_id = UNSET_VALUE
|
69
|
+
@use_insecure_key = UNSET_VALUE
|
58
70
|
@zone_id = UNSET_VALUE
|
59
71
|
end
|
60
72
|
|
@@ -79,6 +91,8 @@ module VagrantPlugins
|
|
79
91
|
@disk_source_archive = 112500459149 # Ubuntu Server 12.04.3 LTS 64bit
|
80
92
|
end
|
81
93
|
|
94
|
+
@public_key_path = nil if @public_key_path == UNSET_VALUE
|
95
|
+
|
82
96
|
if @server_name == UNSET_VALUE
|
83
97
|
@server_name = nil
|
84
98
|
end
|
@@ -87,9 +101,9 @@ module VagrantPlugins
|
|
87
101
|
@server_plan = 1001 # 1Core-1GB - cheapest
|
88
102
|
end
|
89
103
|
|
90
|
-
if @sshkey_id == UNSET_VALUE
|
91
|
-
|
92
|
-
|
104
|
+
@sshkey_id = nil if @sshkey_id == UNSET_VALUE
|
105
|
+
|
106
|
+
@use_insecure_key = false if @use_insecure_key == UNSET_VALUE
|
93
107
|
|
94
108
|
if @zone_id == UNSET_VALUE
|
95
109
|
@zone_id = "is1a" # the first zone
|
@@ -97,15 +111,19 @@ module VagrantPlugins
|
|
97
111
|
end
|
98
112
|
|
99
113
|
def validate(machine)
|
100
|
-
errors =
|
114
|
+
errors = _detected_errors
|
101
115
|
|
102
|
-
if
|
116
|
+
if @access_token.nil?
|
103
117
|
errors << I18n.t("vagrant_sakura.config.access_token_required")
|
104
118
|
end
|
105
|
-
if
|
119
|
+
if @access_token_secret.nil?
|
106
120
|
errors << I18n.t("vagrant_sakura.config.access_token_secret_required")
|
107
121
|
end
|
108
122
|
|
123
|
+
if not (@sshkey_id or @public_key_path or @use_insecure_key)
|
124
|
+
errors << I18n.t("vagrant_sakura.config.need_ssh_key_config")
|
125
|
+
end
|
126
|
+
|
109
127
|
{ "Sakura Provider" => errors }
|
110
128
|
end
|
111
129
|
end
|
data/locales/en.yml
CHANGED
@@ -4,6 +4,10 @@ en:
|
|
4
4
|
The server is already created.
|
5
5
|
creating_instance: |-
|
6
6
|
Creating a server with the following settings...
|
7
|
+
default_key_is_insecure: |-
|
8
|
+
Warning! You are using insecure default key to login to the server on
|
9
|
+
Sakura-no-cloud. The key is publicly available (bundled in Vagrant
|
10
|
+
distribution) so malicious people can login to your server.
|
7
11
|
down: |-
|
8
12
|
The server is down.
|
9
13
|
not_created: |-
|
@@ -42,3 +46,5 @@ en:
|
|
42
46
|
An access token is required via "access_token"
|
43
47
|
access_token_secret_required: |-
|
44
48
|
An access token secret is required via "access_token_secret"
|
49
|
+
need_ssh_key_config: |-
|
50
|
+
You must set one of "sshkey_id", "pubic_key_path", or "use_insecure_key".
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-sakura
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomoyuki Sahara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Enables Vagrant to manage machines in Sakura Cloud.
|
14
14
|
email:
|