VULTR Rubygem

The easiest and most complete rubygem for VULTR.

Vultr.api_key = "your_api_key"
r = Vultr::Server.list
# => {
#    :status=>200,
#    :result=>[40, 11, 45, 29, 41, 61, 46, 35, 12, 30, 42, 3, 39, 13, 60, 36, 37, 43, 27, 28, 38]
# }

r[:status]
r[:result]

You can find your keys at https://my.vultr.com/settings/#API

Installation

Add this line to your application's Gemfile:

gem 'vultr'

And then execute:

$ bundle

Or install it yourself as:

$ gem install vultr

Usage

List Servers

Vultr::Server.list

Create Server

Vultr::Server.create({DCID: dc_id, VPSPLANID: vps_plan_id, OSID: os_id})

Available Commands

Vultr::.info

Vultr::App.list

Vultr::Auth.info

Vultr::Backup.list

Vultr::Block.attach({SUBID: sub_id, attach_to_SUBID: attach_to_sub_id})
Vultr::Block.create({DCID: dc_id, size_gb: size_gb, label: label})
Vultr::Block.delete(SUBID: sub_id)
Vultr::Block.detach(SUBID: sub_id)
Vultr::Block.label_set({SUBID: sub_id, label: label})
Vultr::Block.list(SUBID: sub_id)
Vultr::Block.resize({SUBID: sub_id, size_gb: size_gb})

Vultr::DNS.create_domain({domain: domain, serverip: server_ip})
Vultr::DNS.create_record({domain: domain, name: name, type: type, data: data, ttl: ttl, priority: priority})
Vultr::DNS.delete_domain(domain: domain)
Vultr::DNS.delete_record({domain: domain, RECORDID: record_id})
Vultr::DNS.list
Vultr::DNS.records(domain: domain)
Vultr::DNS.update_record({domain: domain, RECORDID: record_id, name: name, type: type, data: data, ttl: ttl, priority: priority})

Vultr::ISO.list

Vultr::OS.list

Vultr::Plans.list
Vultr::Plans.list_vc2
Vultr::Plans.list_vdc2

Vultr::Regions.list
Vultr::Regions.availability(DCID: dc_id)

Vultr::ReservedIP.attach({ip_address: ip_address, attach_SUBID: attach_sub_id})
Vultr::ReservedIP.convert({SUBID: sub_id, ip_address: ip_address, label: label})
Vultr::ReservedIP.create({DCID: dc_id, ip_type: ip_type, label: label})
Vultr::ReservedIP.destroy(ip_address: ip_address)
Vultr::ReservedIP.detach({ip_address: ip_address, detach_SUBID: detach_sub_id})
Vultr::ReservedIP.list

Vultr::Server.app_change({SUBID: sub_id, APPID: app_id})
Vultr::Server.app_change_list(SUBID: sub_id)
Vultr::Server.backup_disable(SUBID: sub_id)
Vultr::Server.backup_enable(SUBID: sub_id)
Vultr::Server.backup_get_schedule(SUBID: sub_id)
Vultr::Server.backup_set_schedule({SUBID: sub_id, cron_type: cron_type, hour: hour, dow: dow, dom: dom})
Vultr::Server.bandwidth(SUBID: sub_id)
Vultr::Server.create({DCID: dc_id, VPSPLANID: vps_plan_id, OSID: os_id, ipxe_chain_url: ipxe_chain_url, ISOID: iso_id,
                      SCRIPTID: script_id, SNAPSHOTID: snapshot_id, enable_ipv6: enable_ipv6, enable_private_network: enable_private_network,
                      private_network: private_network, label: label, SSHKEYID: sshkey_id, auto_backups: auto_backups, APPID: app_id,
                      userdata: userdata, notify_activate: notify_activate, ddos_protection: ddos_protection, reserved_ip_v4: reserved_ipv4,
                      hostname: hostname, tag: tag})
Vultr::Server.create_ipv4

Contributing

  1. Fork it ( https://github.com/tolbkni/vultr/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

When adding methods, add to the list of DEFINITIONS in lib/vultr.rb. Additionally, write a spec and add it to the list in the README.

Thanks

Thanks Scott Motte and his DigitalOcean rubygem project.