💧 A Vagrant provider plugin that manages DigitalOcean droplets.
Ruby
1,708
258 commits
updated Sep 7, 2023
vagrant-digitalocean is a Vagrant provider plugin that supports the management of DigitalOcean Droplets (virtual machines).
Features include:
Install the provider plugin using the Vagrant command-line interface:
vagrant plugin install vagrant-digitalocean
Once the provider has been installed, you will need to configure your project to use it. See the following example for a basic multi-machine Vagrantfile implementation that manages two DigitalOcean Droplets running Ubuntu 18.04 using a single CPU Droplet with 1GB of memory:
Vagrant.configure('2') do |config|
config.vm.define "droplet1" do |config|
config.vm.provider :digital_ocean do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/devopsgroup-io/vagrant-digitalocean/raw/master/box/digital_ocean.box"
override.nfs.functional = false
override.vm.allowed_synced_folder_types = :rsync
provider.token = 'YOUR TOKEN'
provider.image = 'ubuntu-18-04-x64'
provider.region = 'nyc1'
provider.size = 's-1vcpu-1gb'
provider.backups_enabled = false
provider.private_networking = false
provider.ipv6 = false
provider.monitoring = false
end
end
config.vm.define "droplet2" do |config|
config.vm.provider :digital_ocean do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/devopsgroup-io/vagrant-digitalocean/raw/master/box/digital_ocean.box"
override.nfs.functional = false
override.vm.allowed_synced_folder_types = :rsync
provider.token = 'YOUR TOKEN'
provider.image = 'ubuntu-18-04-x64'
provider.region = 'nyc3'
provider.size = 's-1vcpu-1gb'
provider.backups_enabled = false
provider.private_networking = false
provider.ipv6 = false
provider.monitoring = false
end
end
end
Configuration Requirements
override.ssh.private_key_path to enable authentication with the Droplet. The provider will create a new DigitalOcean SSH key using your public key which is assumed to be the private_key_path with a .pub extension.provider.token. This may be found on the control panel within the Apps & API section.Supported Configuration Attributes
The following attributes are available to further configure the provider:
provider.image
ubuntu-18-04-x64.
List available images with the vagrant digitalocean-list images $DIGITAL_OCEAN_TOKEN command. Like when using the DigitalOcean API directly, it can be an image ID or slug.provider.ipv6
provider.region
nyc2. List available regions with the vagrant digitalocean-list regions $DIGITAL_OCEAN_TOKEN command.provider.size
s-1vcpu-1gb). It defaults to s-1vcpu-1gb. List available sizes with the vagrant digitalocean-list sizes $DIGITAL_OCEAN_TOKEN command.provider.private_networking
false.provider.backups_enabled
false.provider.ssh_key_name
Vagrant.provider.setup
true. If you are using a tool like Packer to create reusable snapshots with user accounts already provisioned, set to false.provider.monitoring
false.provider.tags
provider.volumes
config.vm.synced_folder
["--verbose", "--archive", "--delete", "-z", "--copy-links"] and rsync__exclude defaults to [".vagrant/"].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.
After creating your project's Vagrantfile with the required configuration
attributes described above, you may create a new Droplet with the following
command:
$ vagrant up --provider=digital_ocean
This command will create a new Droplet, setup your SSH key for authentication, create a new user account, and run the provisioners you have configured.
Supported Commands
The provider supports the following Vagrant sub-commands:
vagrant destroy - Destroys the Droplet instance.vagrant ssh - Logs into the Droplet instance using the configured user account.vagrant halt - Powers off the Droplet instance.vagrant provision - Runs the configured provisioners and rsyncs any specified config.vm.synced_folder.vagrant reload - Reboots the Droplet instance.vagrant rebuild - Destroys the Droplet instance and recreates it with the same IP address which was previously assigned.vagrant status - Outputs the status (active, off, not created) for the Droplet instance.This DigitalOcean API provider plugin for Vagrant has been tested with the following technology.
| Date Tested | Vagrant Version | vagrant-digitalocean Version | Host (Workstation) Operating System | Guest (DigitalOcean) Operating System |
|---|---|---|---|---|
| 03/12/2020 | 2.2.7 | 0.9.4 | OS X 10.14.6 | Ubuntu 18.04, Debian 10, Debian 9, Debian 8, CentOS 7 |
| 03/22/2016 | 1.8.1 | 0.7.10 | OS X 10.11.4 | CentOS 7.0 |
| 04/03/2013 | 1.1.5 | 0.1.0 | Ubuntu 12.04 | CentOS 6.3 |
Before submitting a GitHub issue, please ensure both Vagrant and vagrant-digitalocean are fully up-to-date.
For the latest Vagrant version, please visit the Vagrant website
To update Vagrant plugins, run the following command: vagrant plugin update
vagrant plugin install vagrant-digitalocean
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.vagrant-omnibus plugin to install Chef on Vagrant-managed machines. This plugin provides control over the specific version of Chef to install.To contribute, fork then clone the repository, and then the following:
Developing
rvm use 3.0.0bundle installTesting
rake gem:buildvagrant plugin install pkg/vagrant-digitalocean-*.gemvagrant plugin uninstall vagrant-digitaloceanvagrant plugin install vagrant-digitaloceanReleasing
To release a new version of vagrant-digitalocean you will need to do the following:
(only contributors of the GitHub repo and owners of the project at RubyGems will have rights to do this)
v.rake gem:buildgem push pkg/vagrant-digitalocean-0.7.6.gemvagrant plugin updatevagrant plugin update vagrant-digitalocean991 followers · starred Jan 2014
449 followers · starred Mar 2013
114 followers · starred Apr 2013
503 followers · starred Oct 2013
💧 A Vagrant provider plugin that manages DigitalOcean droplets.
Ruby
1,708
258 commits
updated Sep 7, 2023
vagrant-digitalocean is a Vagrant provider plugin that supports the management of DigitalOcean Droplets (virtual machines).
Features include:
Install the provider plugin using the Vagrant command-line interface:
vagrant plugin install vagrant-digitalocean
Once the provider has been installed, you will need to configure your project to use it. See the following example for a basic multi-machine Vagrantfile implementation that manages two DigitalOcean Droplets running Ubuntu 18.04 using a single CPU Droplet with 1GB of memory:
Vagrant.configure('2') do |config|
config.vm.define "droplet1" do |config|
config.vm.provider :digital_ocean do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/devopsgroup-io/vagrant-digitalocean/raw/master/box/digital_ocean.box"
override.nfs.functional = false
override.vm.allowed_synced_folder_types = :rsync
provider.token = 'YOUR TOKEN'
provider.image = 'ubuntu-18-04-x64'
provider.region = 'nyc1'
provider.size = 's-1vcpu-1gb'
provider.backups_enabled = false
provider.private_networking = false
provider.ipv6 = false
provider.monitoring = false
end
end
config.vm.define "droplet2" do |config|
config.vm.provider :digital_ocean do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/devopsgroup-io/vagrant-digitalocean/raw/master/box/digital_ocean.box"
override.nfs.functional = false
override.vm.allowed_synced_folder_types = :rsync
provider.token = 'YOUR TOKEN'
provider.image = 'ubuntu-18-04-x64'
provider.region = 'nyc3'
provider.size = 's-1vcpu-1gb'
provider.backups_enabled = false
provider.private_networking = false
provider.ipv6 = false
provider.monitoring = false
end
end
end
Configuration Requirements
override.ssh.private_key_path to enable authentication with the Droplet. The provider will create a new DigitalOcean SSH key using your public key which is assumed to be the private_key_path with a .pub extension.provider.token. This may be found on the control panel within the Apps & API section.Supported Configuration Attributes
The following attributes are available to further configure the provider:
provider.image
ubuntu-18-04-x64.
List available images with the vagrant digitalocean-list images $DIGITAL_OCEAN_TOKEN command. Like when using the DigitalOcean API directly, it can be an image ID or slug.provider.ipv6
provider.region
nyc2. List available regions with the vagrant digitalocean-list regions $DIGITAL_OCEAN_TOKEN command.provider.size
s-1vcpu-1gb). It defaults to s-1vcpu-1gb. List available sizes with the vagrant digitalocean-list sizes $DIGITAL_OCEAN_TOKEN command.provider.private_networking
false.provider.backups_enabled
false.provider.ssh_key_name
Vagrant.provider.setup
true. If you are using a tool like Packer to create reusable snapshots with user accounts already provisioned, set to false.provider.monitoring
false.provider.tags
provider.volumes
config.vm.synced_folder
["--verbose", "--archive", "--delete", "-z", "--copy-links"] and rsync__exclude defaults to [".vagrant/"].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.
After creating your project's Vagrantfile with the required configuration
attributes described above, you may create a new Droplet with the following
command:
$ vagrant up --provider=digital_ocean
This command will create a new Droplet, setup your SSH key for authentication, create a new user account, and run the provisioners you have configured.
Supported Commands
The provider supports the following Vagrant sub-commands:
vagrant destroy - Destroys the Droplet instance.vagrant ssh - Logs into the Droplet instance using the configured user account.vagrant halt - Powers off the Droplet instance.vagrant provision - Runs the configured provisioners and rsyncs any specified config.vm.synced_folder.vagrant reload - Reboots the Droplet instance.vagrant rebuild - Destroys the Droplet instance and recreates it with the same IP address which was previously assigned.vagrant status - Outputs the status (active, off, not created) for the Droplet instance.This DigitalOcean API provider plugin for Vagrant has been tested with the following technology.
| Date Tested | Vagrant Version | vagrant-digitalocean Version | Host (Workstation) Operating System | Guest (DigitalOcean) Operating System |
|---|---|---|---|---|
| 03/12/2020 | 2.2.7 | 0.9.4 | OS X 10.14.6 | Ubuntu 18.04, Debian 10, Debian 9, Debian 8, CentOS 7 |
| 03/22/2016 | 1.8.1 | 0.7.10 | OS X 10.11.4 | CentOS 7.0 |
| 04/03/2013 | 1.1.5 | 0.1.0 | Ubuntu 12.04 | CentOS 6.3 |
Before submitting a GitHub issue, please ensure both Vagrant and vagrant-digitalocean are fully up-to-date.
For the latest Vagrant version, please visit the Vagrant website
To update Vagrant plugins, run the following command: vagrant plugin update
vagrant plugin install vagrant-digitalocean
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.vagrant-omnibus plugin to install Chef on Vagrant-managed machines. This plugin provides control over the specific version of Chef to install.To contribute, fork then clone the repository, and then the following:
Developing
rvm use 3.0.0bundle installTesting
rake gem:buildvagrant plugin install pkg/vagrant-digitalocean-*.gemvagrant plugin uninstall vagrant-digitaloceanvagrant plugin install vagrant-digitaloceanReleasing
To release a new version of vagrant-digitalocean you will need to do the following:
(only contributors of the GitHub repo and owners of the project at RubyGems will have rights to do this)
v.rake gem:buildgem push pkg/vagrant-digitalocean-0.7.6.gemvagrant plugin updatevagrant plugin update vagrant-digitalocean991 followers · starred Jan 2014
449 followers · starred Mar 2013
114 followers · starred Apr 2013
503 followers · starred Oct 2013