vagrant-digitalocean 0.7.6 → 0.7.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +80 -92
- data/lib/vagrant-digitalocean/actions/sync_folders.rb +6 -4
- data/lib/vagrant-digitalocean/version.rb +1 -1
- 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: 2d25d71a7736e890b2690c5f6da785e9ba9002de
|
4
|
+
data.tar.gz: 645d770371e722a0037bac2d3ef29860b7c9f6c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 879e4bb295023cc2fa52b8bda80f9b1ee774c62c6edfd5817a1fca8c24fa0ce538a603ad9f8a65ee43d0e620cf77f33315e153b6de32f2d2a31f929e4b3b2747
|
7
|
+
data.tar.gz: 9e6b1d61b080d828c2c593126a36ef3f3deea301e35de718f6e3b79ba89f6f2ab8ebdc5a0be68f2dca6090da53b20aeb227ae11507cc33d6ab743ec7ce4d9bf6
|
data/README.md
CHANGED
@@ -1,54 +1,28 @@
|
|
1
1
|
Digital Ocean Vagrant Provider
|
2
2
|
==============================
|
3
|
-
`vagrant-digitalocean` is a provider plugin for Vagrant that supports the
|
4
|
-
management of [Digital Ocean](https://www.digitalocean.com/) droplets
|
5
|
-
(instances).
|
3
|
+
`vagrant-digitalocean` is a provider plugin for Vagrant that supports the management of [Digital Ocean](https://www.digitalocean.com/) droplets (instances).
|
6
4
|
|
7
|
-
|
8
|
-
Please use the `vagrant-omnibus` plugin to install Chef on Vagrant-managed
|
9
|
-
machines. This plugin provides control over the specific version of Chef
|
10
|
-
to install.
|
11
|
-
|
12
|
-
Current features include:
|
5
|
+
Features include:
|
13
6
|
- create and destroy droplets
|
14
7
|
- power on and off droplets
|
15
|
-
- rebuild a droplet
|
16
|
-
- provision a droplet with
|
8
|
+
- rebuild a droplet (destroys and ups with same IP address)
|
9
|
+
- provision a droplet with shell
|
17
10
|
- setup a SSH public key for authentication
|
18
11
|
- create a new user account during droplet creation
|
19
12
|
|
20
|
-
The provider has been tested with Vagrant 1.1.5+ using Ubuntu 12.04 and
|
21
|
-
|
13
|
+
The provider has been tested with Vagrant 1.1.5+ using Ubuntu 12.04 and CentOS 6.3 guest operating systems.
|
14
|
+
|
22
15
|
|
23
16
|
Install
|
24
17
|
-------
|
25
|
-
|
26
|
-
|
27
|
-
1. Install the provider plugin using the Vagrant command-line interface:
|
28
|
-
|
29
|
-
$ vagrant plugin install vagrant-digitalocean
|
30
|
-
|
18
|
+
Install the provider plugin using the Vagrant command-line interface:
|
31
19
|
|
32
|
-
|
33
|
-
You may need to specify certificate path explicitly.
|
34
|
-
You can verify actual certificate path by running:
|
20
|
+
`vagrant plugin install vagrant-digitalocean`
|
35
21
|
|
36
|
-
```bash
|
37
|
-
ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"
|
38
|
-
```
|
39
|
-
|
40
|
-
Then, add the following environment variable to your
|
41
|
-
`.bash_profile` script and `source` it:
|
42
|
-
|
43
|
-
```bash
|
44
|
-
export SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem
|
45
|
-
```
|
46
22
|
|
47
23
|
Configure
|
48
24
|
---------
|
49
|
-
Once the provider has been installed, you will need to configure your project
|
50
|
-
to use it. The most basic `Vagrantfile` to create a droplet on Digital Ocean
|
51
|
-
is shown below:
|
25
|
+
Once the provider has been installed, you will need to configure your project to use it. The most basic `Vagrantfile` to create a droplet on Digital Ocean is shown below:
|
52
26
|
|
53
27
|
```ruby
|
54
28
|
Vagrant.configure('2') do |config|
|
@@ -66,50 +40,35 @@ Vagrant.configure('2') do |config|
|
|
66
40
|
end
|
67
41
|
```
|
68
42
|
|
69
|
-
|
70
|
-
- You *must* specify the `override.ssh.private_key_path` to enable authentication
|
71
|
-
|
72
|
-
your public key which is assumed to be the `private_key_path` with a *.pub*
|
73
|
-
extension.
|
74
|
-
- You *must* specify your Digital Ocean Personal Access Token. This may be
|
75
|
-
found on the control panel within the *Apps & API* section.
|
43
|
+
**Configuration Requirements**
|
44
|
+
- You *must* specify the `override.ssh.private_key_path` to enable authentication with the droplet. The provider will create a new Digital Ocean SSH key using your public key which is assumed to be the `private_key_path` with a *.pub* extension.
|
45
|
+
- You *must* specify your Digital Ocean Personal Access Token at `provider.token`. This may be found on the control panel within the *Apps & API* section.
|
76
46
|
|
77
47
|
**Supported Configuration Attributes**
|
78
48
|
|
79
49
|
The following attributes are available to further configure the provider:
|
80
|
-
- `provider.image`
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
- `provider.region`
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
- `provider.backups_enabled`
|
92
|
-
|
93
|
-
- `provider.ssh_key_name`
|
94
|
-
|
95
|
-
- `provider.setup`
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
The provider will create a new user account with the specified SSH key for
|
101
|
-
authorization if `config.ssh.username` is set and the `provider.setup`
|
102
|
-
attribute is `true`.
|
103
|
-
|
104
|
-
### image, region and size slugs
|
105
|
-
|
106
|
-
Images, regions and sizes have to be specified with the slug name. You can find the slug names with the `digitalocean-list` commands:
|
50
|
+
- `provider.image`
|
51
|
+
* A string representing the image to use when creating a new droplet. It defaults to `ubuntu-14-04-x64`.
|
52
|
+
List available images with the `digitalocean-list images $DIGITAL_OCEAN_TOKEN` command. Like when using the DigitalOcean API directly, [it can be an image ID or slug](https://developers.digitalocean.com/documentation/v2/#create-a-new-droplet).
|
53
|
+
- `provider.ipv6`
|
54
|
+
* A boolean flag indicating whether to enable IPv6
|
55
|
+
- `provider.region`
|
56
|
+
* A string representing the region to create the new droplet in. It defaults to `nyc2`. List available regions with the `digitalocean-list regions $DIGITAL_OCEAN_TOKEN` command.
|
57
|
+
- `provider.size`
|
58
|
+
* A string representing the size to use when creating a new droplet (e.g. `1gb`). It defaults to `512mb`. List available sizes with the `digitalocean-list sizes $DIGITAL_OCEAN_TOKEN` command.
|
59
|
+
- `provider.private_networking`
|
60
|
+
* A boolean flag indicating whether to enable a private network interface (if the region supports private networking). It defaults to `false`.
|
61
|
+
- `provider.backups_enabled`
|
62
|
+
* A boolean flag indicating whether to enable backups for the droplet. It defaults to `false`.
|
63
|
+
- `provider.ssh_key_name`
|
64
|
+
* A string representing the name to use when creating a Digital Ocean SSH key for droplet authentication. It defaults to `Vagrant`.
|
65
|
+
- `provider.setup`
|
66
|
+
* A boolean flag indicating whether to setup a new user account and modify sudo to disable tty requirement. It defaults to `true`. If you are using a tool like [Packer](https://packer.io) to create reusable snapshots with user accounts already provisioned, set to `false`.
|
67
|
+
- `config.vm.synced_folder`
|
68
|
+
* Supports both rsync__args and rsync__exclude, see the [Vagrant Docs](http://docs.vagrantup.com/v2/synced-folders/rsync.html) for more information. rsync__args default to `["--verbose", "--archive", "--delete", "-z", "--copy-links"]` and rsync__exclude defaults to `[".vagrant/"]`.
|
69
|
+
|
70
|
+
The provider will create a new user account with the specified SSH key for authorization if `config.ssh.username` is set and the `provider.setup` attribute is `true`.
|
107
71
|
|
108
|
-
```
|
109
|
-
vagrant digitalocean-list images $DIGITAL_OCEAN_TOKEN
|
110
|
-
vagrant digitalocean-list regions $DIGITAL_OCEAN_TOKEN
|
111
|
-
vagrant digitalocean-list sizes $DIGITAL_OCEAN_TOKEN
|
112
|
-
```
|
113
72
|
|
114
73
|
Run
|
115
74
|
---
|
@@ -126,28 +85,57 @@ create a new user account, and run the provisioners you have configured.
|
|
126
85
|
|
127
86
|
The provider supports the following Vagrant sub-commands:
|
128
87
|
- `vagrant destroy` - Destroys the droplet instance.
|
129
|
-
- `vagrant ssh` - Logs into the droplet instance using the configured user
|
130
|
-
account.
|
88
|
+
- `vagrant ssh` - Logs into the droplet instance using the configured user account.
|
131
89
|
- `vagrant halt` - Powers off the droplet instance.
|
132
|
-
- `vagrant provision` - Runs the configured provisioners and rsyncs any
|
133
|
-
specified `config.vm.synced_folder`.
|
90
|
+
- `vagrant provision` - Runs the configured provisioners and rsyncs any specified `config.vm.synced_folder`.
|
134
91
|
- `vagrant reload` - Reboots the droplet instance.
|
135
|
-
- `vagrant rebuild` - Destroys the droplet instance and recreates it with the
|
136
|
-
|
137
|
-
- `vagrant status` - Outputs the status (active, off, not created) for the
|
138
|
-
droplet instance.
|
92
|
+
- `vagrant rebuild` - Destroys the droplet instance and recreates it with the same IP address which was previously assigned.
|
93
|
+
- `vagrant status` - Outputs the status (active, off, not created) for the droplet instance.
|
139
94
|
|
140
|
-
Contribute
|
141
|
-
----------
|
142
|
-
To contribute, clone the repository, and use [Bundler](http://gembundler.com)
|
143
|
-
to install dependencies:
|
144
95
|
|
145
|
-
|
96
|
+
Troubleshooting
|
97
|
+
---------------
|
146
98
|
|
147
|
-
|
99
|
+
* `vagrant plugin install vagrant-digitalocean`
|
100
|
+
* Installation on OS X may not working due to a SSL certificate problem, and you may need to specify a certificate path explicitly. To do so, run `ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE"`. Then, add the following environment variable to your `.bash_profile` script and `source` it: `export SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem`.
|
148
101
|
|
149
|
-
$ bundle exec rake test
|
150
102
|
|
151
|
-
|
152
|
-
|
153
|
-
|
103
|
+
FAQ
|
104
|
+
---
|
105
|
+
|
106
|
+
* The Chef provisioner is no longer supported by default (as of 0.2.0). Please use the `vagrant-omnibus` plugin to install Chef on Vagrant-managed machines. This plugin provides control over the specific version of Chef to install.
|
107
|
+
|
108
|
+
|
109
|
+
Contribute
|
110
|
+
----------
|
111
|
+
To contribute, fork then clone the repository, and then the following:
|
112
|
+
|
113
|
+
**Developing**
|
114
|
+
|
115
|
+
1. Install [Bundler](http://bundler.io/)
|
116
|
+
2. Currently the Bundler version is locked to 1.7.9, please install this version.
|
117
|
+
* `sudo gem install bundler -v '1.7.9'`
|
118
|
+
3. Then install vagrant-digitalocean dependancies:
|
119
|
+
* `bundle _1.7.9_ install`
|
120
|
+
4. Do your development and run a few commands, one to get started would be:
|
121
|
+
* `bundle _1.7.9_ exec vagrant digitalocean-list images`
|
122
|
+
5. You can then run a test:
|
123
|
+
* `bundle _1.7.9_ exec rake test`
|
124
|
+
6. Once you are satisfied with your changes, please submit a pull request.
|
125
|
+
|
126
|
+
**Releasing**
|
127
|
+
|
128
|
+
To release a new version of vagrant-digitalocean you will need to do the following:
|
129
|
+
|
130
|
+
*(only contributors of the GitHub repo and owners of the project at RubyGems will have rights to do this)*
|
131
|
+
|
132
|
+
1. First, create a tag and push:
|
133
|
+
* `git tag -a v0.7.6 -m 'v0.7.6'`
|
134
|
+
2. Then, create a release on Github with the same versioning convention:
|
135
|
+
* https://github.com/smdahlen/vagrant-digitalocean/releases
|
136
|
+
3. You will then need to build and push the new gem to RubyGems:
|
137
|
+
* `rake gem:build`
|
138
|
+
* `gem push pkg/vagrant-digitalocean-0.7.6.gem`
|
139
|
+
4. Then, when John Doe runs the following, they will receive the updated vagrant-digitalocean plugin:
|
140
|
+
* `vagrant plugin update`
|
141
|
+
* `vagrant plugin update vagrant-digitalocean`
|
@@ -52,14 +52,16 @@ module VagrantPlugins
|
|
52
52
|
key = ssh_info[:private_key_path]
|
53
53
|
key = key[0] if key.is_a?(Array)
|
54
54
|
|
55
|
-
#
|
55
|
+
# attach to vagrant's default rsync opetions
|
56
56
|
# http://docs.vagrantup.com/v2/synced-folders/rsync.html
|
57
|
-
|
57
|
+
args = ["--verbose", "--archive", "--delete", "-z", "--copy-links", *Array(data[:rsync__args])]
|
58
|
+
exclude = [".vagrant/", *Array(data[:rsync__exclude])]
|
58
59
|
|
59
60
|
# rsync over to the guest path using the ssh info
|
60
61
|
command = [
|
61
|
-
"rsync",
|
62
|
-
*
|
62
|
+
"rsync",
|
63
|
+
*args.map{|e|[e]}.flatten,
|
64
|
+
*exclude.map{|e|["--exclude", e]}.flatten,
|
63
65
|
"-e", "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no -i '#{key}'",
|
64
66
|
hostpath,
|
65
67
|
"#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-digitalocean
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Bender
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|