diff --git a/README.md b/README.md index de941e3..5f11916 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Vagrant.configure('2') do |config| provider.size = '512mb' end end - + config.vm.define "droplet2" do |config| config.vm.provider :digital_ocean do |provider, override| override.ssh.private_key_path = '~/.ssh/id_rsa' @@ -56,7 +56,7 @@ Vagrant.configure('2') do |config| provider.size = '1gb' end end - + end ``` @@ -84,6 +84,12 @@ The following attributes are available to further configure the provider: * A string representing the name to use when creating a DigitalOcean SSH key for Droplet authentication. It defaults to `Vagrant`. - `provider.setup` * 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`. +- `provider.monitoring` + * A boolean indicating whether to install the DigitalOcean agent for monitoring. It defaults to `false`. +- `provider.tags` + * A flat array of tag names as strings to apply to the Droplet after it is created. Tag names can either be existing or new tags. +- `provider.volumes` + * A flat array including the unique identifier for each Block Storage volume attached to the Droplet. - `config.vm.synced_folder` * 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/"]`. @@ -128,7 +134,7 @@ Before submitting a GitHub issue, please ensure both Vagrant and vagrant-digital * For the latest Vagrant version, please visit the [Vagrant](https://www.vagrantup.com/) website * To update Vagrant plugins, run the following command: `vagrant plugin update` -* `vagrant plugin install vagrant-digitalocean` +* `vagrant plugin install vagrant-digitalocean` * 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`. diff --git a/lib/vagrant-digitalocean/actions/create.rb b/lib/vagrant-digitalocean/actions/create.rb index c909968..80318c5 100644 --- a/lib/vagrant-digitalocean/actions/create.rb +++ b/lib/vagrant-digitalocean/actions/create.rb @@ -27,7 +27,10 @@ def call(env) :private_networking => @machine.provider_config.private_networking, :backups => @machine.provider_config.backups_enabled, :ipv6 => @machine.provider_config.ipv6, - :user_data => @machine.provider_config.user_data + :user_data => @machine.provider_config.user_data, + :monitoring => @machine.provider_config.monitoring, + :tags => @machine.provider_config.tags, + :volumes => @machine.provider_config.volumes }.delete_if { |k, v| v.nil? }) # wait for request to complete diff --git a/lib/vagrant-digitalocean/config.rb b/lib/vagrant-digitalocean/config.rb index 7593347..eda9e55 100644 --- a/lib/vagrant-digitalocean/config.rb +++ b/lib/vagrant-digitalocean/config.rb @@ -12,6 +12,9 @@ class Config < Vagrant.plugin('2', :config) attr_accessor :ssh_key_name attr_accessor :setup attr_accessor :user_data + attr_accessor :monitoring + attr_accessor :tags + attr_accessor :volumes alias_method :setup?, :setup @@ -27,6 +30,9 @@ def initialize @ssh_key_name = UNSET_VALUE @setup = UNSET_VALUE @user_data = UNSET_VALUE + @monitoring = UNSET_VALUE + @tags = UNSET_VALUE + @volumes = UNSET_VALUE end def finalize! @@ -41,6 +47,9 @@ def finalize! @ssh_key_name = 'Vagrant' if @ssh_key_name == UNSET_VALUE @setup = true if @setup == UNSET_VALUE @user_data = nil if @user_data == UNSET_VALUE + @monitoring = false if @monitoring == UNSET_VALUE + @tags = nil if @tags == UNSET_VALUE + @volumes = nil if @volumes == UNSET_VALUE end def validate(machine)