akissa/vagrant-rimu

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Rimuhosting Vagrant Provider

`vagrant-rimuhosting` is a provider plugin for Vagrant that supports the
management of [Rimuhosting](https://www.rimuhosting.com/) VPS's.

[![Build Status](https://travis-ci.org/akissa/vagrant-rimu.svg?branch=master)](https://travis-ci.org/akissa/vagrant-rimu)
[![Code Climate](https://codeclimate.com/github/akissa/vagrant-rimu/badges/gpa.svg)](https://codeclimate.com/github/akissa/vagrant-rimu)
[![Test Coverage](https://codeclimate.com/github/akissa/vagrant-rimu/badges/coverage.svg)](https://codeclimate.com/github/akissa/vagrant-rimu/coverage)
[![Gem Version](https://badge.fury.io/rb/vagrant-rimu.svg)](https://badge.fury.io/rb/vagrant-rimu)
[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/)

Current Features include:
- create and destroy VPS's
- power on and off VPS's
- rebuild a VPS (destroys and ups with same IP address)
- provision a VPS
- move a VPS to a different host server
- setup a SSH public key for authentication
- create a new user account during VPS creation

## Install

Install the provider plugin using the Vagrant command-line interface:

    vagrant plugin install vagrant-rimu

## Configure

Once the provider has been installed, you will need to configure your
project to use it.

The most basic `Vagrantfile` to create a VPS on Rimu is shown below
(with the optional options commented out):

```ruby
Vagrant.configure('2') do |config|

  config.vm.provider :rimu do |provider, override|
    override.ssh.insert_key = true
    override.ssh.private_key_path = '~/.ssh/id_rsa'

    provider.api_key = 'YOUR RIMU API KEY'
    provider.host_name = 'rimu.example.com'
    # provider.distro_code = 'centos6.64'
    # provider.data_centre = 'DCDALLAS'
    # provider.memory_mb = 1024
    # provider.disk_space_mb = 40000
    # provider.disk_space_2_mb = 40000
    # provider.vps_type = 'REGULAR'
    # provider.root_password = 'zxcvbnm'
    # provider.control_panel = 'webmin'
    # provider.vps_to_clone = 999
    # provider.extra_ip_reason = 'TLS/SSL for example.com and example.net'
    # provider.num_ips = 2
    # provider.private_ips = true
    # provider.billing_id = 9999
    # provider.host_server_id = 9999
    # provider.minimal_init = true
  end
end
```

**Configuration Requirements**
- You *must* specify the `override.ssh.private_key_path` option to enable
  authentication.
- You *must* specify your Rimu API Key. This can be found/generated in the RIMU
  [control panel](https://rimuhosting.com/cp/apikeys.jsp).
- You *must* specify the `provider.host_name` option, and it should be a
  fully qualified domain name (FQDN).

## Run

After creating your project's `Vagrantfile` with the required configuration
attributes described above, you may create a new VPS with the following
command:

    $ vagrant up --provider=rimu

This command will create a new VPS, 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 Rimu VPS.
- `vagrant rebuild` - Destroys the Rimu VPS and recreates it with the
  same IP address which was previously assigned.
- `vagrant halt` - Powers off the Rimu VPS.
- `vagrant reload` - Reboots the Rimu VPS.
- `vagrant provision` - Runs the configured provisioners and rsyncs any
  specified `config.vm.synced_folder` folders.
- `vagrant status` - Outputs the status (active, off, not created) for the
  Rimu VPS.
- `vagrant ssh` - Logs into the Rimu VPS using the configured user account.
- `vagrant rimu` - Rimu provider specific commands

**Rimu Specific Commands**

The Rimu specific commands are available as sub commands of `vagrant rimu`.
The `vagrant rimu` command provides the following sub commands:
- `distributions` - Lists the distributions supported.
- `servers` - Lists the servers under your account.
- `billing methods` - Lists the billing methods setup for your account.
- `move-vps` - Moves your VPS to a different host.

## Contributing

1. Fork it (https://github.com/akissa/vagrant-rimu/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 new Pull Request


## License

All code is licensed under the
[MPLv2 License](https://github.com/akissa/vagrant-rimu/blob/master/LICENSE).