1cloud Vagrant Provider
vagrant-1cloud is a Vagrant provider plugin that supports the management of 1cloud VPS.
Features include:
- Create and destroy VPS
- Power on and off VPS
- Provision a VPS with shell
- Setup a SSH public key for authentication
- Create a new user account during VPS creation
- Create private network
- Add VPS to private network
- Rebuild VPS
Install
Install the provider plugin using the Vagrant command-line interface:
vagrant plugin install vagrant-1cloud
Configure
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 1cloud VPS:
Vagrant.configure('2') do |config|
config.vm.define "vps1" do |config|
config.vm.provider :onecloud do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'onecloud'
provider.token = 'YOUR TOKEN'
end
end
config.vm.define "vps2" do |config|
config.vm.provider :onecloud do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'onecloud'
provider.token = 'YOUR TOKEN'
end
end
end
Configuration Requirements
- You must specify the
override.ssh.private_key_pathto enable authentication with the VPS. - You must specify your 1cloud Personal Access Token at
provider.token.
Supported Configuration Attributes The following attributes are available to further configure the provider:
provider.image- A string representing the image ID to use when creating a new VPS. It defaults to
7(ubuntu-14-04-x64).
- A string representing the image ID to use when creating a new VPS. It defaults to
provider.region- A string representing the region to create the new VPS in. It defaults to
SdnSpb.
- A string representing the region to create the new VPS in. It defaults to
provider.hdd- A number representing the disk space (in GB) to use when creating a new VPS (e.g. 50). It defaults to 10.
provider.hdd_type- A string representing the disk type to use when creating a new VPS (e.g.
SSD). It defaults toSAS.
- A string representing the disk type to use when creating a new VPS (e.g.
provider.cpu- A number representing the amount of cores to use when creating a new VPS (e.g. 2). It defaults to 1.
provider.ram- A number representing the RAM (in MB) to use when creating a new VPS (e.g. 1024). It defaults to 512.
provider.hi_perf- A boolean flag indicating whether to use high performance pool or not. It defaults to
false.
- A boolean flag indicating whether to use high performance pool or not. It defaults to
provider.private_net- A hash representing the pair that indicates the private network name and IP address of a new VPS (e.g. => "192.168.1.10" or => nil to set IP address automatically). VPS isn't added to private network by default.
config.vm.synced_folder- Supports both rsync_args and rsyncexclude, see the Vagrant Docs for more information. rsyncargs default to
["--verbose", "--archive", "--delete", "-z", "--copy-links"]and rsync_exclude defaults to[".vagrant/"].
- Supports both rsync_args and rsyncexclude, see the Vagrant Docs for more information. rsyncargs default to
The provider will create a new user account with the specified SSH key for authorization if config.ssh.username is set.
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=onecloud
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 VPS instance.vagrant ssh- Logs into the VPS instance using the configured user account.vagrant halt- Powers off the VPS instance.vagrant provision- Runs the configured provisioners and rsyncs any specifiedconfig.vm.synced_folder.vagrant reload- Reboots the VPS instance.vagrant status- Outputs the status (active, off, not created) for the VPS instance.vagrant create-network- Creates private network.vagrant add-network- Adds VPS to specified private network.vagrant rebuild- Rebuilds the VPS.
Troubleshooting
Before submitting a GitHub issue, please ensure both Vagrant and vagrant-onecloud 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 updatevagrant plugin install vagrant-onecloud- 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_profilescript andsourceit:export SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem.
- 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
FAQ
- The Chef provisioner is no longer supported by default. Please use the
vagrant-omnibusplugin to install Chef on Vagrant-managed machines. This plugin provides control over the specific version of Chef to install.