README.md in vagrant-vcloud-0.4.4 vs README.md in vagrant-vcloud-0.4.6

- old
+ new

@@ -1,106 +1,168 @@ -[Vagrant](http://www.vagrantup.com) provider for VMware vCloud Director® [![Gem Version](https://badge.fury.io/rb/vagrant-vcloud.svg)](http://badge.fury.io/rb/vagrant-vcloud) [![Code Climate](https://codeclimate.com/github/frapposelli/vagrant-vcloud/badges/gpa.svg)](https://codeclimate.com/github/frapposelli/vagrant-vcloud) -============= +[Vagrant](http://www.vagrantup.com) provider for VMware vCloud Director® [![Gem Version](https://badge.fury.io/rb/vagrant-vcloud.svg)](http://badge.fury.io/rb/vagrant-vcloud) [![Code Climate](https://codeclimate.com/github/frapposelli/vagrant-vcloud/badges/gpa.svg)](https://codeclimate.com/github/frapposelli/vagrant-vcloud) [![Dependency Status](https://gemnasium.com/frapposelli/vagrant-vcloud.svg)](https://gemnasium.com/frapposelli/vagrant-vcloud) [![Join the chat at https://gitter.im/frapposelli/vagrant-vcloud](https://badges.gitter.im/frapposelli/vagrant-vcloud.svg)](https://gitter.im/frapposelli/vagrant-vcloud?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== Please note that this software is still Alpha/Beta quality and is not recommended for production usage. We have a wide array of boxes available at [Vagrant Cloud](https://vagrantcloud.com/gosddc) you can use them directly or you can roll your own as you please, make sure to install VMware tools in it. -Starting from [version 0.4.2](../../releases/tag/v0.4.2), this plugin supports the universal [```vmware_ovf``` box format](https://github.com/gosddc/packer-post-processor-vagrant-vmware-ovf/wiki/vmware_ovf-Box-Format), that is 100% portable between [vagrant-vcloud](https://github.com/frapposelli/vagrant-vcloud), [vagrant-vcenter](https://github.com/gosddc/vagrant-vcenter) and [vagrant-vcloudair](https://github.com/gosddc/vagrant-vcloudair), no more double boxes!. +Starting from [version 0.4.2](../../releases/tag/v0.4.2), this plugin supports the universal [`vmware_ovf` box format](https://github.com/gosddc/packer-post-processor-vagrant-vmware-ovf/wiki/vmware_ovf-Box-Format), that is 100% portable between [vagrant-vcloud](https://github.com/frapposelli/vagrant-vcloud), [vagrant-vcenter](https://github.com/gosddc/vagrant-vcenter) and [vagrant-vcloudair](https://github.com/gosddc/vagrant-vcloudair), no more double boxes!. If you're unsure about what are the correct network settings for your Vagrantfile make sure to check out the [Network Deployment Options](https://github.com/frapposelli/vagrant-vcloud/wiki/Network-Deployment-Options) wiki page. Check the full releases changelog [here](../../releases) Install -------------- +------- -Latest version can be easily installed by running the following command: +Latest version can be installed by running the following command: -```vagrant plugin install vagrant-vcloud``` +`vagrant plugin install vagrant-vcloud` Vagrant will download all the required gems during the installation process. -After the install has completed a ```vagrant up --provider=vcloud``` will trigger the newly installed provider. +After the install has completed a `vagrant up --provider=vcloud` will trigger the newly installed provider. Upgrade -------------- +------- If you already have vagrant-vcloud installed you can update to the latest version available by issuing: -```vagrant plugin update vagrant-vcloud``` +`vagrant plugin update vagrant-vcloud` Vagrant will take care of the upgrade process. Configuration ------------- -Here's a sample Multi-VM Vagrantfile, please note that ```vcloud.vdc_edge_gateway``` and ```vcloud.vdc_edge_gateway_ip``` are required only when you cannot access ```vcloud.vdc_network_name``` directly and there's an Organization Edge between your workstation and the vCloud Network. +Here's a sample Multi-VM Vagrantfile, please note that `vcloud.vdc_edge_gateway` and `vcloud.vdc_edge_gateway_ip` are required when you cannot access `vcloud.vdc_network_name` directly and there's an Organization Edge between your workstation and the vCloud Network. ```ruby +vapp = { + name: 'My vApp name', + org_name: 'OrganizationName', + orgvdc_name: 'vDC_Name', + orgvdccatalog_name: 'Vagrant', + metadata: [ [ 'key', 'value' ] ], + advanced_networking: true, + networks: { + org: [ 'Org_VDC_Network' ], + vapp: [ + { + name: 'MyNetwork', + ip_subnet: '10.10.10.10/255.255.255.0' + } + ] + } +} + nodes = [ - { hostname: 'web-vm', box: 'gosddc/precise32' }, + { + hostname: 'web-vm', + box: 'gosddc/precise32', + memory: 512, + cpus: 1, + nested_hypervisor: false, + add_hdds: [ 1024 ], + power_on: true, + ssh_enable: true, + sync_enable: true, + metadata: [ [ 'key', 'value' ] ], + nics: [ + type: :vmxnet3, + connected: true, + network: "vApp netowrk", + primary: true, + ip_mode: "static", + ip: "10.10.10.1", + mac: "00:50:56:00:00:01" + ], + enable_guest_customization: true, + guest_customization_script: 'touch /sample.file' + }, { hostname: 'ssh-vm', box: 'gosddc/precise32' }, { hostname: 'sql-vm', box: 'gosddc/precise32' }, { hostname: 'app-vm', box: 'gosddc/precise32' } ] Vagrant.configure('2') do |config| # vCloud Director provider settings config.vm.provider :vcloud do |vcloud| - vcloud.vapp_prefix = 'multibox-sample' vcloud.hostname = 'https://my.cloudprovider.com' vcloud.username = 'MyUserName' vcloud.password = 'MySup3rS3cr3tPassw0rd!' - vcloud.org_name = 'OrganizationName' - vcloud.vdc_name = 'vDC_Name' + vcloud.vapp_prefix = 'multibox-sample' - vcloud.catalog_name = 'Vagrant' - vcloud.ip_subnet = '172.16.32.125/255.255.255.240' + vcloud.org_name = vapp[:org_name] + vcloud.vdc_name = vapp[:orgvdc_name] + vcloud.catalog_name = vapp[:orgvdccatalog_name] - vcloud.vdc_network_name = 'MyNetwork' + vcloud.vapp_name = vapp[:name] + vcloud.metadata_vapp = vapp[:metadata] + vcloud.auto_yes_for_upload = vapp[:auto_yes_for_upload] - vcloud.vdc_edge_gateway = 'MyOrgEdgeGateway' - vcloud.vdc_edge_gateway_ip = '10.10.10.10' + vcloud.advanced_network = vapp[:advanced_networking] + if vapp[:advanced_networking] + vcloud.networks = vapp[:networks] + else + vcloud.ip_subnet = '172.16.32.125/255.255.255.240' + vcloud.vdc_network_name = 'MyNetwork' + vcloud.vdc_edge_gateway = 'MyOrgEdgeGateway' + vcloud.vdc_edge_gateway_ip = '10.10.10.10' + end end nodes.each do |node| config.vm.define node[:hostname] do |node_config| node_config.vm.box = node[:box] node_config.vm.hostname = node[:hostname] node_config.vm.box_url = node[:box_url] - node_config.vm.network :forwarded_port, - guest: 80, - host: 8080, - auto_correct: true + if vapp[:advanced_networking] + node_config.vm.provider :vcloud do |pro| + pro.memory = node[:memory] + pro.cpus = node[:cpus] + pro.add_hdds = node[:add_hdds] + pro.nics = node[:nics] + pro.ssh_enabled = node[:ssh_enabled] + pro.sync_enabled = node[:sync_enabled] + pro.power_on = node[:power_on] + pro.metadata_vm = node[:metadata] + pro.nested_hypervisor = node[:nested_hypervisor] + pro.enable_guest_customization = node[:enable_guest_customization] + pro.guest_customization_script = node[:guest_customization_script] + end + node_config.vm.network :public_network + else + node_config.vm.network :forwarded_port, + guest: 80, + host: 8080, + auto_correct: true + end # node_config.vm.provision :puppet do |puppet| # puppet.manifests_path = 'puppet/manifests' # puppet.manifest_file = 'site.pp' # puppet.module_path = 'puppet/modules' # end end end end ``` -For additional documentation on different network setups with vCloud Director, check the [Network Deployment Options](../../wiki/Network-Deployment-Options) Wiki page +For additional documentation on network setups with vCloud Director, check the [Network Deployment Options](../../wiki/Network-Deployment-Options) Wiki page Contribute -------------- +---------- What is still missing: -- TEST SUITES! (working on that). -- Speed, the code is definitely not optimized. -- Permission checks, make sure you have at least Catalog Admin privileges if you want to upload boxes to vCloud. -- Thorough testing. -- Error checking is absymal. -- Some spaghetti code here and there. -- Bugs, bugs and BUGS!. +- TEST SUITES! (working on that). +- Speed, the code is definitely not optimized. +- Permission checks, make sure you have at least Catalog Admin privileges if you want to upload boxes to vCloud. +- Thorough testing. +- Error checking is absymal. +- Some spaghetti code here and there. +- Bugs, bugs and BUGS!. -If you're a developer and want to lend us a hand, head over to our ```develop``` branch and send us PRs! - - -[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/frapposelli/vagrant-vcloud/trend.png)](https://bitdeli.com/free "Bitdeli Badge") +If you're a developer and want to lend us a hand, head over to our `develop` branch and send us PRs!