vagrant-linode 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/README.md +11 -2
- data/lib/vagrant-linode/actions/create.rb +9 -5
- data/lib/vagrant-linode/actions/setup_hostname.rb +32 -0
- data/lib/vagrant-linode/actions.rb +3 -0
- data/lib/vagrant-linode/config.rb +3 -0
- data/lib/vagrant-linode/helpers/client.rb +6 -4
- data/lib/vagrant-linode/version.rb +1 -1
- data/locales/en.yml +1 -0
- data/test/Vagrantfile +1 -0
- data/vagrant-linode.gemspec +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8ce03d21b5be2ac13a6492b31874c435dced26f
|
4
|
+
data.tar.gz: 4662545d18c8e288c37bb3f085306239865b8a09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbee5ac73c4c72a2f8518a775e895c64e420901ff3eb9e2d5dec78d3a0eb65d1cd66dc7b31dd05c754f63f2942aed694bedda10cc62e5e9ed33dad391e3b6969
|
7
|
+
data.tar.gz: 5f31d483d567d7bbdbb9a8548288f56748adf2172c00062a6e74c62f851e5ddf5f36723c76fb9bf4f1ef8fe2e90a1e04c2a4908980a366403a3c23ffc919c84e
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -87,8 +87,8 @@ Please note the following:
|
|
87
87
|
**Supported Configuration Attributes**
|
88
88
|
|
89
89
|
The following attributes are available to further configure the provider:
|
90
|
-
- `provider.
|
91
|
-
new linode (e.g. `Debian 7.5`). The available options may
|
90
|
+
- `provider.distribution` - A string representing the distribution to use when
|
91
|
+
creating a new linode (e.g. `Debian 7.5`). The available options may
|
92
92
|
be found on Linode's new linode [form](https://www.linode.com/distributions).
|
93
93
|
It defaults to `Ubuntu 14.04 LTS`.
|
94
94
|
- `provider.datacenter` - A string representing the region to create the new
|
@@ -104,6 +104,10 @@ The following attributes are available to further configure the provider:
|
|
104
104
|
account and modify sudo to disable tty requirement. It defaults to `true`.
|
105
105
|
If you are using a tool like [packer](https://packer.io) to create
|
106
106
|
reusable snapshots with user accounts already provisioned, set to `false`.
|
107
|
+
- `provider.label` - A string representing the Linode label to assign when
|
108
|
+
creating a new linode
|
109
|
+
- `provider.group` - A string representing the Linode's Display group to assign
|
110
|
+
when creating a new linode
|
107
111
|
|
108
112
|
The provider will create a new user account with the specified SSH key for
|
109
113
|
authorization if `config.ssh.username` is set and the `provider.setup`
|
@@ -147,6 +151,7 @@ Current Region-ID table is:
|
|
147
151
|
| 7 | london | London, England, UK |
|
148
152
|
| 6 | newark | Newark, NJ, USA |
|
149
153
|
| 8 | tokyo | Tokyo, JP |
|
154
|
+
| 9 | singapore | Singapore, SGP |
|
150
155
|
|
151
156
|
You can find latest datacenter ID number using Linode API call.
|
152
157
|
|
@@ -171,6 +176,8 @@ command:
|
|
171
176
|
This command will create a new linode, setup your SSH key for authentication,
|
172
177
|
create a new user account, and run the provisioners you have configured.
|
173
178
|
|
179
|
+
The environment variable `VAGRANT_DEFAULT_PROVIDER` can be set to `linode` to avoid sending `--provider=linode` on each `vagrant up`.
|
180
|
+
|
174
181
|
**Supported Commands**
|
175
182
|
|
176
183
|
The provider supports the following Vagrant sub-commands:
|
@@ -201,8 +208,10 @@ You can now make modifications. Running `vagrant` within the Bundler
|
|
201
208
|
environment will ensure that plugins installed in your Vagrant
|
202
209
|
environment are not loaded.
|
203
210
|
|
211
|
+
[](https://gitter.im/displague/vagrant-linode?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
204
212
|
[](https://codeclimate.com/github/displague/vagrant-linode)
|
205
213
|
[](https://codeclimate.com/github/displague/vagrant-linode)
|
206
214
|
[](http://badge.fury.io/rb/vagrant-linode)
|
215
|
+
[](https://gemnasium.com/displague/vagrant-linode)
|
207
216
|
[](https://tldrlegal.com/license/mit-license)
|
208
217
|
|
@@ -98,16 +98,16 @@ module VagrantPlugins
|
|
98
98
|
label: 'Vagrant Disk Distribution ' + distribution_id.to_s + ' Linode ' + result['linodeid'].to_s,
|
99
99
|
type: 'ext4',
|
100
100
|
size: xvda_size,
|
101
|
-
|
102
|
-
|
101
|
+
rootsshkey: pubkey,
|
102
|
+
rootpass: root_pass
|
103
103
|
)
|
104
104
|
elsif image_id
|
105
105
|
disk = @client.linode.disk.createfromimage(
|
106
106
|
linodeid: result['linodeid'],
|
107
107
|
imageid: image_id,
|
108
108
|
size: xvda_size,
|
109
|
-
|
110
|
-
|
109
|
+
rootsshkey: pubkey,
|
110
|
+
rootpass: root_pass
|
111
111
|
)
|
112
112
|
|
113
113
|
swap = @client.linode.disk.create(
|
@@ -137,9 +137,13 @@ module VagrantPlugins
|
|
137
137
|
label = label || @machine.name if @machine.name != 'default'
|
138
138
|
label = label || get_server_name
|
139
139
|
|
140
|
+
group = @machine.provider_config.group
|
141
|
+
group = "" if @machine.provider_config.group == false
|
142
|
+
|
140
143
|
result = @client.linode.update(
|
141
144
|
linodeid: result['linodeid'],
|
142
|
-
label: label
|
145
|
+
label: label,
|
146
|
+
lpm_displaygroup: group
|
143
147
|
)
|
144
148
|
|
145
149
|
env[:ui].info I18n.t('vagrant_linode.info.booting', linodeid: result['linodeid'])
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module Linode
|
6
|
+
module Actions
|
7
|
+
class SetupHostname
|
8
|
+
|
9
|
+
def initialize(app, env)
|
10
|
+
@app = app
|
11
|
+
@machine = env[:machine]
|
12
|
+
@logger = Log4r::Logger.new('vagrant::linode::setup_hostname')
|
13
|
+
end
|
14
|
+
|
15
|
+
def call(env)
|
16
|
+
# Check if setup is enabled
|
17
|
+
return @app.call(env) unless @machine.provider_config.setup?
|
18
|
+
|
19
|
+
# Set Hostname
|
20
|
+
if @machine.config.vm.hostname
|
21
|
+
env[:ui].info I18n.t('vagrant_linode.info.modifying_host', name: @machine.config.vm.hostname)
|
22
|
+
|
23
|
+
@machine.communicate.execute(<<-BASH)
|
24
|
+
sudo echo -n #{@machine.config.vm.hostname} > /etc/hostname;
|
25
|
+
sudo hostname -F /etc/hostname
|
26
|
+
BASH
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -5,6 +5,7 @@ require 'vagrant-linode/actions/power_off'
|
|
5
5
|
require 'vagrant-linode/actions/power_on'
|
6
6
|
require 'vagrant-linode/actions/rebuild'
|
7
7
|
require 'vagrant-linode/actions/reload'
|
8
|
+
require 'vagrant-linode/actions/setup_hostname'
|
8
9
|
require 'vagrant-linode/actions/setup_user'
|
9
10
|
require 'vagrant-linode/actions/setup_sudo'
|
10
11
|
require 'vagrant-linode/actions/setup_key'
|
@@ -100,6 +101,7 @@ module VagrantPlugins
|
|
100
101
|
b.use Create
|
101
102
|
b.use SetupSudo
|
102
103
|
b.use SetupUser
|
104
|
+
b.use SetupHostname
|
103
105
|
b.use provision
|
104
106
|
end
|
105
107
|
end
|
@@ -148,6 +150,7 @@ module VagrantPlugins
|
|
148
150
|
b.use Rebuild
|
149
151
|
b.use SetupSudo
|
150
152
|
b.use SetupUser
|
153
|
+
b.use SetupHostname
|
151
154
|
b.use provision
|
152
155
|
when :not_created
|
153
156
|
env[:ui].info I18n.t('vagrant_linode.info.not_created')
|
@@ -15,6 +15,7 @@ module VagrantPlugins
|
|
15
15
|
attr_accessor :swap_size
|
16
16
|
attr_accessor :kernel_id
|
17
17
|
attr_accessor :label
|
18
|
+
attr_accessor :group
|
18
19
|
|
19
20
|
alias_method :setup?, :setup
|
20
21
|
|
@@ -33,6 +34,7 @@ module VagrantPlugins
|
|
33
34
|
@swap_size = UNSET_VALUE
|
34
35
|
@kernel_id = UNSET_VALUE
|
35
36
|
@label = UNSET_VALUE
|
37
|
+
@group = UNSET_VALUE
|
36
38
|
end
|
37
39
|
|
38
40
|
def finalize!
|
@@ -50,6 +52,7 @@ module VagrantPlugins
|
|
50
52
|
@swap_size = '256' if @swap_size == UNSET_VALUE
|
51
53
|
@kernel_id = '138' if @kernel_id == UNSET_VALUE
|
52
54
|
@label = false if @label == UNSET_VALUE
|
55
|
+
@group = false if @group == UNSET_VALUE
|
53
56
|
end
|
54
57
|
|
55
58
|
def validate(machine)
|
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'vagrant-linode/helpers/result'
|
2
|
-
require '
|
2
|
+
require 'linodeapi'
|
3
3
|
require 'json'
|
4
4
|
require 'vagrant/util/retryable'
|
5
5
|
|
6
|
+
include Vagrant::Util::Retryable
|
7
|
+
|
6
8
|
module VagrantPlugins
|
7
9
|
module Linode
|
8
10
|
module Helpers
|
@@ -20,8 +22,8 @@ module VagrantPlugins
|
|
20
22
|
fail 'not ready' if result['host_finish_dt'] > ''
|
21
23
|
end
|
22
24
|
end
|
23
|
-
linodeapi = ::
|
24
|
-
|
25
|
+
linodeapi = ::LinodeAPI::Raw.new(apikey: @machine.provider_config.token,
|
26
|
+
endpoint: @machine.provider_config.api_url || nil)
|
25
27
|
# linodeapi.wait_for_event = wait_for_event
|
26
28
|
# linodeapi.extend wait_for_event
|
27
29
|
end
|
@@ -33,7 +35,7 @@ module VagrantPlugins
|
|
33
35
|
def initialize(machine)
|
34
36
|
@logger = Log4r::Logger.new('vagrant::linode::apiclient')
|
35
37
|
@config = machine.provider_config
|
36
|
-
|
38
|
+
@client = ::LinodeAPI::Raw.new(apikey: @config.token, endpoint: @config.api_url || nil)
|
37
39
|
end
|
38
40
|
|
39
41
|
attr_reader :client
|
data/locales/en.yml
CHANGED
@@ -17,6 +17,7 @@ en:
|
|
17
17
|
reloading: "Rebooting the linode..."
|
18
18
|
creating_user: "Creating user account: %{user}..."
|
19
19
|
modifying_sudo: "Modifying sudoers file to remove tty requirement..."
|
20
|
+
modifying_host: "Modifying hostname: %{name}..."
|
20
21
|
using_key: "Using existing SSH key: %{name}"
|
21
22
|
creating_key: "Creating new SSH key: %{name}..."
|
22
23
|
trying_rsync_install: "Rsync not found, attempting to install with yum..."
|
data/test/Vagrantfile
CHANGED
@@ -20,6 +20,7 @@ Vagrant.configure('2') do |config|
|
|
20
20
|
provider.distribution = 'Ubuntu 14.04 LTS'
|
21
21
|
provider.datacenter = 'newark'
|
22
22
|
provider.plan = '1024'
|
23
|
+
provider.label = 'vagrant-'+Time.new.strftime("%F%T").gsub(/[^0-9]/,'')
|
23
24
|
|
24
25
|
# Disk Image Sizes (Optional configuration)
|
25
26
|
|
data/vagrant-linode.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.homepage = 'https://www.github.com/displague/vagrant-linode'
|
14
14
|
gem.summary = gem.description
|
15
15
|
|
16
|
-
gem.add_runtime_dependency '
|
16
|
+
gem.add_runtime_dependency 'linodeapi'
|
17
17
|
gem.add_runtime_dependency 'json'
|
18
18
|
gem.add_runtime_dependency 'log4r'
|
19
19
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-linode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marques Johansson
|
@@ -9,10 +9,10 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-06-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: linodeapi
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- lib/vagrant-linode/actions/power_on.rb
|
123
123
|
- lib/vagrant-linode/actions/rebuild.rb
|
124
124
|
- lib/vagrant-linode/actions/reload.rb
|
125
|
+
- lib/vagrant-linode/actions/setup_hostname.rb
|
125
126
|
- lib/vagrant-linode/actions/setup_key.rb
|
126
127
|
- lib/vagrant-linode/actions/setup_sudo.rb
|
127
128
|
- lib/vagrant-linode/actions/setup_user.rb
|