vagrant-openstack-plugin-tom 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/.travis.yml +11 -0
- data/Authors.txt +11 -0
- data/CHANGELOG.md +185 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +23 -0
- data/README.md +278 -0
- data/Rakefile +21 -0
- data/dummy.box +0 -0
- data/example_box/README.md +13 -0
- data/example_box/metadata.json +3 -0
- data/example_vagrant_file +24 -0
- data/lib/vagrant-openstack-plugin.rb +53 -0
- data/lib/vagrant-openstack-plugin/action.rb +268 -0
- data/lib/vagrant-openstack-plugin/action/connect_openstack.rb +90 -0
- data/lib/vagrant-openstack-plugin/action/create_network_interfaces.rb +52 -0
- data/lib/vagrant-openstack-plugin/action/create_orchestration_stack.rb +97 -0
- data/lib/vagrant-openstack-plugin/action/create_server.rb +263 -0
- data/lib/vagrant-openstack-plugin/action/delete_orchestration_stack.rb +78 -0
- data/lib/vagrant-openstack-plugin/action/delete_server.rb +84 -0
- data/lib/vagrant-openstack-plugin/action/hard_reboot_server.rb +27 -0
- data/lib/vagrant-openstack-plugin/action/is_created.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/is_paused.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/is_snapshoting.rb +24 -0
- data/lib/vagrant-openstack-plugin/action/is_suspended.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_already_created.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_already_paused.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_already_suspended.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_not_created.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_server_running.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_snapshot_done.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_snapshot_in_progress.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/message_will_not_destroy.rb +16 -0
- data/lib/vagrant-openstack-plugin/action/pause_server.rb +27 -0
- data/lib/vagrant-openstack-plugin/action/read_ssh_info.rb +103 -0
- data/lib/vagrant-openstack-plugin/action/read_state.rb +39 -0
- data/lib/vagrant-openstack-plugin/action/reboot_server.rb +27 -0
- data/lib/vagrant-openstack-plugin/action/resume_server.rb +31 -0
- data/lib/vagrant-openstack-plugin/action/suspend_server.rb +27 -0
- data/lib/vagrant-openstack-plugin/action/sync_folders.rb +104 -0
- data/lib/vagrant-openstack-plugin/action/take_snapshot.rb +26 -0
- data/lib/vagrant-openstack-plugin/action/wait_for_state.rb +39 -0
- data/lib/vagrant-openstack-plugin/action/wait_for_task.rb +44 -0
- data/lib/vagrant-openstack-plugin/action/warn_networks.rb +19 -0
- data/lib/vagrant-openstack-plugin/command.rb +70 -0
- data/lib/vagrant-openstack-plugin/command/command_snapshot.rb +43 -0
- data/lib/vagrant-openstack-plugin/config.rb +246 -0
- data/lib/vagrant-openstack-plugin/errors.rb +71 -0
- data/lib/vagrant-openstack-plugin/plugin.rb +45 -0
- data/lib/vagrant-openstack-plugin/provider.rb +50 -0
- data/lib/vagrant-openstack-plugin/version.rb +5 -0
- data/locales/en.yml +154 -0
- data/spec/vagrant-openstack-plugin/config_spec.rb +152 -0
- data/vagrant-openstack-plugin.gemspec +24 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ece582d0db46a5cd3a339b2d23fc7b2c9a210050
|
4
|
+
data.tar.gz: ab82202f9a37dbc1ebf2a5a019696c1e5f628f2d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0b45aebe1c68ef02501647e90342b33258ae12929b7ebc1cb6596698d90fd53cc37e1963a981ea624ef9d830d03cc30ca9c691a14eb3a9d9842fd648eaffb137
|
7
|
+
data.tar.gz: b77a9e2f2a182f1c1f02c07a4b926c7534a7630d98c8f4d0542790ffe06a5bd260a8205ee468e4477d92faa9636240e2736acbd587b57e41c01df8e38bf7176d
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Authors.txt
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
# Changelog for vagrant-openstack-plugin
|
2
|
+
|
3
|
+
## 0.12.0 (2015/08/27)
|
4
|
+
|
5
|
+
- be more specific on using symbols in the config. fixes cloudbau/vagrant-openstack-plugin#106 [view commit](http://github.com///commit/0ef0865c6e38debd77982310073fe09cd99c6054)
|
6
|
+
- Merge pull request #103 from corpix/ssh_ip_family [view commit](http://github.com///commit/6ca314cc0cdbbe62bd4b80e65e518103ce73b027)
|
7
|
+
- Merge pull request #109 from joelanford/floating-ip-fix [view commit](http://github.com///commit/2bf8a08494a8aa4a5a5eae677691c56b9748208b)
|
8
|
+
- Merge pull request #118 from maxx/master [view commit](http://github.com///commit/eadeaa992ad7f2b1e43d35843fdfdc2fda661e3d)
|
9
|
+
- allows an alternative to os.floating_ip :auto, called os.floating_ip :associate_unassigned. This pulls an unassigned IP address from an existing pool with pre-allocated IP's, and will not try to allocate a new IP. If an IP is not available, no floating IP is assigned. Relevant errors and documentation added as well [view commit](http://github.com///commit/adc708405c47c44ef60ccdc5df4d9f6f04cd5a1f)
|
10
|
+
- Fixes issue #100, where config.rb incorrectly handled floating_ip and floating_ip_pool configurations [view commit](http://github.com///commit/21f8532e726d21d75788dcd3d6cdd0ec84acc633)
|
11
|
+
- Merge pull request #107 from Chealion/handleEphemeralDisks [view commit](http://github.com///commit/338e0525397bd710e351cb7a6eadcb801b2255f6)
|
12
|
+
- Merge pull request #104 from cshaffer/upgrade_rsepc [view commit](http://github.com///commit/533c0ac004be755e973098c6589b4cf6b1fdc696)
|
13
|
+
- Add ability to handle swap and ephemeral disks to disks feature [view commit](http://github.com///commit/c4f7acea6e2d97d040184534403fee2262671176)
|
14
|
+
- Convert specs to RSpec 3.1.7 syntax with Transpec [view commit](http://github.com///commit/6115ccb73c8e28704bbe8efb5d079d35b1d0d844)
|
15
|
+
- Upgrade rspec to 3.1.0 [view commit](http://github.com///commit/c0dfe22fdd7c9d2e72c02187491acea7b9e1b013)
|
16
|
+
- Convert specs to RSpec 2.14.8 syntax with Transpec [view commit](http://github.com///commit/dd34a0eed957e190fec369f43514c8a5d4549833)
|
17
|
+
- Upgrade rspec to 2.14 first [view commit](http://github.com///commit/332c537e4f028bc8ab4ffd630c75a32ca93a681f)
|
18
|
+
- Removed debug printing [view commit](http://github.com///commit/59a8f024d090fff5ae28d30ef72a24d2f58044c3)
|
19
|
+
- Updated readme [view commit](http://github.com///commit/815f05d770f9991fa5e333ae24e15fde801643d7)
|
20
|
+
- IP address family match support [view commit](http://github.com///commit/5aa125c0e741496c60927cff9a413e942d9f2720)
|
21
|
+
|
22
|
+
## 0.11.1
|
23
|
+
|
24
|
+
- Merge pull request #99 from jtopjian/master [view commit](http://github.com///commit/1c2667532e408f239761882a367c11d948610f37)
|
25
|
+
- Update README.md to add Static IP instructions [view commit](http://github.com///commit/9246d8b9389dd4e1108e0f3ab7c2652459d6d192)
|
26
|
+
- Merge pull request #98 from Chealion/fixFloatingIP [view commit](http://github.com///commit/1d6635791286bf396ec1a852730116ec1c0bbba0)
|
27
|
+
- Don't release a floating IP unless it was automatically assigned. [view commit](http://github.com///commit/c5f51082323b9defa5d101b0f5decbe68e15cfa3)
|
28
|
+
|
29
|
+
## 0.11.0
|
30
|
+
|
31
|
+
- Merge pull request #97 from cbaenziger/issue_96_fix [view commit](http://github.com///commit/36295904ffb65d7461870a97e561c470fdedbbe5)
|
32
|
+
- Merge pull request #95 from cbaenziger/volume_support [view commit](http://github.com///commit/3d3fb8d6ae3b3115abea725820ac4a205c814070)
|
33
|
+
- Retry server deletes until we are sure the VM is dead -- only then remove IP's and volumes [view commit](http://github.com///commit/8799e70521a4ad4c4d1a5aa2a3ea42b83c042c38)
|
34
|
+
- Update README for more volume related material [view commit](http://github.com///commit/c0e6e0afae67a1e63095f917d50b7c3aa3655547)
|
35
|
+
- Fix to prevent stack trace failing to find VM, if destroying a non-existant VM [view commit](http://github.com///commit/7632b70a9f2c5af3a6d46a31b2ce4beb1bc9217b)
|
36
|
+
- Use same check as connect.rb for Vagrantfile disks section [view commit](http://github.com///commit/bd440fbacd7abc7914629431edd74e73cad71f95)
|
37
|
+
- Fix issue finding volumes if running vagrant destroy after server is destroyed [view commit](http://github.com///commit/8629390d724cdaa611504121bca64690e191cdba)
|
38
|
+
|
39
|
+
## 0.10.0
|
40
|
+
|
41
|
+
- Merge pull request #84 from cbaenziger/volume_support [view commit](http://github.com///commit/fc613a49cb5b2fecf2255d3050d1bff68956735d)
|
42
|
+
- Add support for creating OpenStack Volumes [view commit](http://github.com///commit/60ed3924957bb7eefa95e113336165d76da3a985)
|
43
|
+
|
44
|
+
## 0.9.1
|
45
|
+
|
46
|
+
- Merge pull request #91 from Chealion/master [view commit](http://github.com///commit/6285cae325afa378e90f06635a2cc39b1428a6dd)
|
47
|
+
- Fixes #90 that hostname is set to key path [view commit](http://github.com///commit/5feb04c7bf46cee1ef4d38e25d74710ea9d0981b)
|
48
|
+
- Merge pull request #89 from reachlocal/fix_handleurl_deprecation_for_older_versions [view commit](http://github.com///commit/6ba9ee7d18d63a3d6f254c80e106bc440003fae6)
|
49
|
+
- Added a check for the vagrant version to keep HandleUrl for older versions of vagrant [view commit](http://github.com///commit/07871ed10ea9cca9c51e97fb8bb3e11c33d41a33)
|
50
|
+
|
51
|
+
## 0.9.0
|
52
|
+
|
53
|
+
- Merge pull request #80 from hawknewton/network_fix [view commit](http://github.com///commit/542e7a2e077d624df9cb56a53c24cf3450e11c71)
|
54
|
+
- Merge pull request #86 from ipoddar-ibm/master [view commit](http://github.com///commit/11fccb73264aa852df88825936026a9da4771580)
|
55
|
+
- Merge pull request #88 from chino/fix-rsync-identify-file-options [view commit](http://github.com///commit/9319af5216c8c65ba144154ddfba2c1d767c567d)
|
56
|
+
- Merge pull request #87 from arbrandes/master [view commit](http://github.com///commit/49839de94e1865eb88a25d5876f1698e2069a0be)
|
57
|
+
- sync_folders: should have space between ssh-i options [view commit](http://github.com///commit/07325bfe4c782043d7ecec32a64fa516344cebf8)
|
58
|
+
- Allocate IPs automatically [view commit](http://github.com///commit/84c311544d00286fc2c910f9147892e5ae6c0a5b)
|
59
|
+
- Adds support for static IPs and interface config [view commit](http://github.com///commit/a5fdb22e23687c9bcd540b37b65b8d478d3a5d94)
|
60
|
+
- remove extra line [view commit](http://github.com///commit/010e347acf403d6426fffac5ec01cb999dd9545f)
|
61
|
+
- fix typo [view commit](http://github.com///commit/08dda991121f7e2e2f5bb8f32e03432f69aec226)
|
62
|
+
- support cygwin [view commit](http://github.com///commit/62c2184906e444c22933d34b8b9054fca56df54f)
|
63
|
+
- Connect to openstack network resource when needed [view commit](http://github.com///commit/8515a9305f354963d8687077e203a35c902035ce)
|
64
|
+
|
65
|
+
## 0.8.0
|
66
|
+
|
67
|
+
- Merge pull request #67 from pradels/master [view commit](http://github.com///commit/15f5b5531622376df952bccc0512a6de50d7a92f)
|
68
|
+
- Merge pull request #66 from matope/use-execute-to-make-synced_folder [view commit](http://github.com///commit/96f64a846d40e5c7f0355def17189e38895e29f3)
|
69
|
+
- Merge pull request #72 from mathuin/fix-handlebox [view commit](http://github.com///commit/3396e33e54d2527d28a70f1487da6221cd2316e2)
|
70
|
+
- Merge pull request #64 from bewiwi/reboot [view commit](http://github.com///commit/24bec035508853be871ed8ed73b1d33f15beff76)
|
71
|
+
- Merge pull request #63 from bewiwi/status [view commit](http://github.com///commit/79a8c341501461a0d5ef1ce4f11cc0a1810d38f3)
|
72
|
+
- Merge pull request #71 from bewiwi/add_openstack_snapshot_commmand [view commit](http://github.com///commit/bf4eedd6eb5e29aefe4c0e156b932b4f4a81e1f5)
|
73
|
+
- Merge pull request #73 from detiber/configNetworks [view commit](http://github.com///commit/5e17c5aaeee7bebc4991e440565f2ee4c1b6f191)
|
74
|
+
- Set config.networks to [] if unset [view commit](http://github.com///commit/5aad087358792bee0bd1a6a026820b04bb8ca68f)
|
75
|
+
- Changed HandleBoxUrl to HandleBox. [view commit](http://github.com///commit/ad7b2acdea81fe6f4b50e4658ecd36762a849f74)
|
76
|
+
- Add command snapshot [view commit](http://github.com///commit/2d207ced7e70fe206fa309ed43a8ace3eb86b327)
|
77
|
+
- Orchestration support added. [view commit](http://github.com///commit/d4e098db8517d491adfeb826500ac3ec5384d237)
|
78
|
+
- Avoid using sudo to make synced_folder if possible [view commit](http://github.com///commit/b5b6205fbc34e95b4dbd9c13f974b728cb27c76e)
|
79
|
+
- Add some status messages [view commit](http://github.com///commit/0c9287bc765e074eac104e02d7a64b36bd122034)
|
80
|
+
- Modify reload action to be a real reboot [view commit](http://github.com///commit/91f5dc65a781d062d156b912bfd9d4b84db82e44)
|
81
|
+
|
82
|
+
## 0.7.0
|
83
|
+
|
84
|
+
- Merge pull request #35 from johnbellone/master [view commit](http://github.com///commit/5969261f11585e19348e903eec15617634c3c899)
|
85
|
+
- Fix issues with SSH private keys in Vagrant 1.4. [view commit](http://github.com///commit/a8bf7574de48dc1c62928f5ad73fb6d1e7dd4347)
|
86
|
+
- Refactor OpenStack actions to match AWS. [view commit](http://github.com///commit/c7177dc98ba43e3434075186a76df57d27ce7b26)
|
87
|
+
|
88
|
+
## 0.6.1
|
89
|
+
|
90
|
+
- Merge pull request #60 from matope/fix-floating_ip-NoMethodError [view commit](http://github.com///commit/a058256c27573c7545afbc09cce60214731e6e4e)
|
91
|
+
- Fix NoMethodError on vagrant up w/o floating_ip [view commit](http://github.com///commit/be6fb0d46f69a3b9925c11648e5bc71af4491a7d)
|
92
|
+
|
93
|
+
## 0.6.0
|
94
|
+
|
95
|
+
- Merge pull request #59 from virtuald/fixed_automatic_ip [view commit](http://github.com///commit/7e7867ee7340515a8d0171fe5ea88aa340646e0f)
|
96
|
+
- Update README with additional information about automatic allocation [view commit](http://github.com///commit/ea4ee9f409f61a2583588d3782701fe66239bd24)
|
97
|
+
- Allow address_id to use the automatically assigned floating ip [view commit](http://github.com///commit/cb0e29c20e7105dae2a6534ccaebbe656c0d8419)
|
98
|
+
- Update README [view commit](http://github.com///commit/b26f70653fb7cfbfe9604031d82aa42d4a324421)
|
99
|
+
- Add support for automatically allocating a floating IP [view commit](http://github.com///commit/aee3129fc6020d3e3a6cc8db28b9b1c812225fbc)
|
100
|
+
- update changelog [view commit](http://github.com///commit/936a2eef3d802d65a9f0753b5652ef4a8dbdb345)
|
101
|
+
|
102
|
+
## 0.5.0
|
103
|
+
|
104
|
+
|
105
|
+
- Merge pull request #45 from detiber/fixNetworksPR [view commit](http://github.com///commit/56b28eff5a1079c6805ec944b1a0c1dde458b10e)
|
106
|
+
- Merge pull request #53 from tjheeta/remote_machine_id [view commit](http://github.com///commit/5873d1b5282fe2d24a0e725ec6289d1ba5e20e9b)
|
107
|
+
- Merge pull request #54 from last-g/patch-1 [view commit](http://github.com///commit/7941573ef8f547a915e31c51ab4d1b85b878eebe)
|
108
|
+
- Merge pull request #56 from nicobrevin/feature-no-verify-peer [view commit](http://github.com///commit/844835811808d256f67ad43e0124ace3f552a18c)
|
109
|
+
- Merge pull request #58 from ohnoimdead/no-network-fix [view commit](http://github.com///commit/4b44a7c80d4a381531266844a5c99de0eea850b5)
|
110
|
+
- Fix for exception when OS endpoint doesn't have neutron installed [view commit](http://github.com///commit/7558bbed3b5ecae8bb3e3ca9c64ffc9512a4c170)
|
111
|
+
- add ssl_verify_peer config option [view commit](http://github.com///commit/cb94f002d790afb5fbec225d17385c8f5b0ebb35)
|
112
|
+
- Missing semicolon [view commit](http://github.com///commit/8f609ee474b548b096e42b08c27fc5f874037204)
|
113
|
+
- Missing region while configuring networks [view commit](http://github.com///commit/ea10bff5cdabea0b9c543a5231500fb7f9fd50ac)
|
114
|
+
- Fix for delete_server [view commit](http://github.com///commit/d4f812eb99d135f7b7c5d210778e92cd8e5a4561)
|
115
|
+
- If the .vagrant directory does not contain the machine id, try to connect remotely to try to find it [view commit](http://github.com///commit/71447bf49afe1fed29fa7ce561305dcc756a2e16)
|
116
|
+
- Fix test for config.network and config.networks. [view commit](http://github.com///commit/5c9161aaf3ac715bc52819ee99c2d02d8434ea7b)
|
117
|
+
|
118
|
+
## 0.4.1
|
119
|
+
|
120
|
+
- update release info [view commit](http://github.com///commit/9866c83713ec0f1db8aed02a9aa9cbaafe8e85a4)
|
121
|
+
|
122
|
+
## 0.4.0
|
123
|
+
|
124
|
+
- Merge pull request #49 from RackerJohnMadrid/fix-rsync-vagrant-1-4 [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/5664ead3fda8f889dad72de1de2fbb
|
125
|
+
- fixes the issue of ssh keys now being represented as an Array in vagrant >= 1.4 [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/0741d802a13c4a858
|
126
|
+
- fix regression wrt multiple nics [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/9c5441db359b34f2bbf66d30853c97b0896a494b)
|
127
|
+
- update README [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/725e66ab7970e5698aa7347dae93f791e926097a)
|
128
|
+
- implement multiple networks [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/0bbbda10bc3b6a09e3165936a2cd17d56b9d3159)
|
129
|
+
- two minor rsync bugfixes [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/5bf54e8ab99baa850631803137d991a4756f34ab)
|
130
|
+
- Merge pull request #33 from johnbellone/master [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/f863781405a1070fe991f55f93d2b37763f6c1da)
|
131
|
+
- Add actions for pausing/suspending (and inverse). [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/a5ec0edd25af250599e0e248a25d8a34af0e1c40)
|
132
|
+
- Merge pull request #31 from johnbellone/master [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/83031f79e5834693e2c45656c0ae17b6f13afe83)
|
133
|
+
- Add a little debugging output. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/c00310ed8855d3b2b0472ab9304debefbb0918e3)
|
134
|
+
- Add travis.yml file to the project. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/bc53baaa43c2bf652294d374e071c96bf00bcf12)
|
135
|
+
- Add proxy option to configuration. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/3d33bdc9a3bf28af7403bd1a0245a9869799eadc)
|
136
|
+
|
137
|
+
|
138
|
+
## 0.3.0 (September 25, 2013)
|
139
|
+
|
140
|
+
- Adds support to determine IP address to use
|
141
|
+
- Region Support
|
142
|
+
- Enabled controlling multiple VMs in parallel
|
143
|
+
- Honor disabling of synced folders
|
144
|
+
- Adds `availability_zone` option to specify instance zone
|
145
|
+
- Added --delete to rsync command
|
146
|
+
- Call SetHostname action from Vagrant core in up phase
|
147
|
+
- Handled not having the box and providing it via a box_url.
|
148
|
+
- Allowed vagrant ssh -c 'command'
|
149
|
+
- Adds tenant to network request
|
150
|
+
- Improved documentation
|
151
|
+
|
152
|
+
## 0.2.2 (May 30, 2013)
|
153
|
+
|
154
|
+
- Also ignore HOSTUNREACH errors when first trying to connect to newly created VM
|
155
|
+
|
156
|
+
## 0.2.1 (May 29, 2013)
|
157
|
+
|
158
|
+
- Fix passing user data to server on create
|
159
|
+
- Floating IP Capability
|
160
|
+
- Added ability to configure scheduler hints
|
161
|
+
- Update doc (network config in fact has higher precedence than address_id)
|
162
|
+
- 'address_id' now defaults to 'public', to reduce number of cases in read_ssh_info
|
163
|
+
- Introduced 'address_id' config, which has a higher order of precedence than 'network'
|
164
|
+
|
165
|
+
## 0.2.0 (May 2, 2013)
|
166
|
+
|
167
|
+
- Added docs
|
168
|
+
- Removed metadata validation and bumped version
|
169
|
+
- Tenant and security groups are now configurable
|
170
|
+
|
171
|
+
## 0.1.3 (April 26, 2013)
|
172
|
+
|
173
|
+
- Added the ability to pass metadata keypairs to instances
|
174
|
+
- Added support for nics configurations to allow for selection of a specific network on creation
|
175
|
+
|
176
|
+
## 0.1.2 (April 26, 2013)
|
177
|
+
|
178
|
+
- Added the option of passing user data to VMs
|
179
|
+
- Enabled `vagrant provision` in this provider
|
180
|
+
- Made finding IP address more stable
|
181
|
+
- Doc improvements and minor fixes
|
182
|
+
|
183
|
+
## 0.1.0 (March 14, 2013)
|
184
|
+
|
185
|
+
- Initial release
|
data/Gemfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
|
5
|
+
group :development do
|
6
|
+
# We depend on Vagrant for development, but we don't add it as a
|
7
|
+
# gem dependency because we expect to be installed within the
|
8
|
+
# Vagrant environment itself using `vagrant plugin`.
|
9
|
+
gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :tag => "v1.4.3"
|
10
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
Copyright (c) 2013 Mitchell Hashimoto
|
2
|
+
Copyright (c) 2013 cloudbau GmbH
|
3
|
+
|
4
|
+
MIT License
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
+
a copy of this software and associated documentation files (the
|
8
|
+
"Software"), to deal in the Software without restriction, including
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
12
|
+
the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
21
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
22
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
23
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,278 @@
|
|
1
|
+
# Vagrant OpenStack Cloud Provider
|
2
|
+
|
3
|
+
This is a [Vagrant](http://www.vagrantup.com) 1.1+ plugin that adds a
|
4
|
+
[OpenStack Cloud](http://www.openstack.org) provider to Vagrant,
|
5
|
+
allowing Vagrant to control and provision machines within an OpenStack
|
6
|
+
cloud.
|
7
|
+
|
8
|
+
This plugin started as a fork of the Vagrant RackSpace provider.
|
9
|
+
|
10
|
+
**Note:** This plugin requires Vagrant 1.1+.
|
11
|
+
|
12
|
+
## Features
|
13
|
+
|
14
|
+
* Boot OpenStack Cloud instances.
|
15
|
+
* SSH into the instances.
|
16
|
+
* Provision the instances with any built-in Vagrant provisioner.
|
17
|
+
* Minimal synced folder support via `rsync`.
|
18
|
+
* Creation and destruction of volumes with VM
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
Install using standard Vagrant 1.1+ plugin installation methods. After
|
23
|
+
installing, `vagrant up` and specify the `openstack` provider. An example is
|
24
|
+
shown below.
|
25
|
+
|
26
|
+
```
|
27
|
+
$ vagrant plugin install vagrant-openstack-plugin
|
28
|
+
...
|
29
|
+
$ vagrant up --provider=openstack
|
30
|
+
...
|
31
|
+
```
|
32
|
+
|
33
|
+
Of course prior to doing this, you'll need to obtain an OpenStack-compatible
|
34
|
+
box file for Vagrant.
|
35
|
+
|
36
|
+
## Quick Start
|
37
|
+
|
38
|
+
After installing the plugin (instructions above), the quickest way to get
|
39
|
+
started is to actually use a dummy OpenStack box and specify all the details
|
40
|
+
manually within a `config.vm.provider` block. So first, add the dummy
|
41
|
+
box using any name you want:
|
42
|
+
|
43
|
+
```
|
44
|
+
$ vagrant box add dummy https://github.com/cloudbau/vagrant-openstack-plugin/raw/master/dummy.box
|
45
|
+
...
|
46
|
+
```
|
47
|
+
|
48
|
+
And then make a Vagrantfile that looks like the following, filling in
|
49
|
+
your information where necessary.
|
50
|
+
|
51
|
+
```
|
52
|
+
require 'vagrant-openstack-plugin'
|
53
|
+
|
54
|
+
Vagrant.configure("2") do |config|
|
55
|
+
config.vm.box = "dummy"
|
56
|
+
|
57
|
+
# Make sure the private key from the key pair is provided
|
58
|
+
config.ssh.private_key_path = "~/.ssh/id_rsa"
|
59
|
+
|
60
|
+
config.vm.provider :openstack do |os|
|
61
|
+
os.username = "YOUR USERNAME" # e.g. "#{ENV['OS_USERNAME']}"
|
62
|
+
os.api_key = "YOUR API KEY" # e.g. "#{ENV['OS_PASSWORD']}"
|
63
|
+
os.flavor = /m1.tiny/ # Regex or String
|
64
|
+
os.image = /Ubuntu/ # Regex or String
|
65
|
+
os.endpoint = "KEYSTONE AUTH URL" # e.g. "#{ENV['OS_AUTH_URL']}/tokens"
|
66
|
+
os.keypair_name = "YOUR KEYPAIR NAME" # as stored in Nova
|
67
|
+
os.ssh_username = "SSH USERNAME" # login for the VM
|
68
|
+
|
69
|
+
os.ssh_ip_family = "ipv6" # IP address family
|
70
|
+
|
71
|
+
os.metadata = {"key" => "value"} # optional
|
72
|
+
os.user_data = "#cloud-config\nmanage_etc_hosts: True" # optional
|
73
|
+
os.network = "YOUR NETWORK_NAME" # optional
|
74
|
+
os.networks = [ "internal", "external" ] # optional, overrides os.network
|
75
|
+
os.address_id = "YOUR ADDRESS ID" # optional (`network` above has higher precedence)
|
76
|
+
os.scheduler_hints = {
|
77
|
+
:cell => 'australia'
|
78
|
+
} # optional
|
79
|
+
os.availability_zone = "az0001" # optional
|
80
|
+
os.security_groups = ['ssh', 'http'] # optional
|
81
|
+
os.tenant = "YOUR TENANT_NAME" # optional
|
82
|
+
os.floating_ip = "33.33.33.33" # optional (The floating IP to assign for this instance, or set to :auto or :associate_unassigned (ruby symbol, no quotes!))
|
83
|
+
os.floating_ip_pool = "public" # optional (The floating IP pool to allocate addresses to, if floating_ip = :auto, or the pool to pull the next available IP from if floating_ip = :associate_unassigned (ruby symbol, no quotes!))
|
84
|
+
|
85
|
+
os.disks = [ # optional
|
86
|
+
{"name" => "volume_name_here", "description" => "A 10GB Volume", "size" => 10},
|
87
|
+
{"name" => "volume_name_here", "description" => "A 20GB Volume", "size" => 20}
|
88
|
+
]
|
89
|
+
|
90
|
+
os.orchestration_stack_name = 'stack01' # optional
|
91
|
+
os.orchestration_cfn_template_file = '/tmp/cfn_heat_template.json' # optional
|
92
|
+
os.orchestration_cfn_template_parameters = { # optional
|
93
|
+
'NetworkName' => 'net_01'
|
94
|
+
}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
```
|
98
|
+
|
99
|
+
And then run `vagrant up --provider=openstack`.
|
100
|
+
|
101
|
+
This will start a tiny Ubuntu instance in your OpenStack installation within
|
102
|
+
your tenant. And assuming your SSH information was filled in properly
|
103
|
+
within your Vagrantfile, SSH and provisioning will work as well.
|
104
|
+
|
105
|
+
Note that normally a lot of this boilerplate is encoded within the box
|
106
|
+
file, but the box file used for the quick start, the "dummy" box, has
|
107
|
+
no preconfigured defaults.
|
108
|
+
|
109
|
+
## Box Format
|
110
|
+
|
111
|
+
Every provider in Vagrant must introduce a custom box format. This
|
112
|
+
provider introduces `openstack` boxes. You can view an example box in
|
113
|
+
the [example_box/ directory](https://github.com/cloudbau/vagrant-openstack-plugin/tree/master/example_box).
|
114
|
+
That directory also contains instructions on how to build a box.
|
115
|
+
|
116
|
+
The box format is basically just the required `metadata.json` file
|
117
|
+
along with a `Vagrantfile` that does default settings for the
|
118
|
+
provider-specific configuration for this provider.
|
119
|
+
|
120
|
+
## Configuration
|
121
|
+
|
122
|
+
This provider exposes quite a few provider-specific configuration options:
|
123
|
+
|
124
|
+
* `api_key` - The API key for accessing OpenStack.
|
125
|
+
* `flavor` - The server flavor to boot. This can be a string matching
|
126
|
+
the exact ID or name of the server, or this can be a regular expression
|
127
|
+
to partially match some server flavor.
|
128
|
+
* `image` - The server image to boot. This can be a string matching the
|
129
|
+
exact ID or name of the image, or this can be a regular expression to
|
130
|
+
partially match some image.
|
131
|
+
* `endpoint` - The keystone authentication URL of your OpenStack installation.
|
132
|
+
* `server_name` - The name of the server within the OpenStack Cloud. This
|
133
|
+
defaults to the name of the Vagrant machine (via `config.vm.define`), but
|
134
|
+
can be overridden with this.
|
135
|
+
* `username` - The username with which to access OpenStack.
|
136
|
+
* `keypair_name` - The name of the keypair to access the machine.
|
137
|
+
* `ssh_username` - The username to access the machine. This can also be
|
138
|
+
configured using the standard config.ssh.username configuration value.
|
139
|
+
* `ssh_ip_family` - The IP address family to use for SSH connection. It could be `ipv6` or `ipv4`.
|
140
|
+
This option takes effect only if virtual machine have multiple addresses.
|
141
|
+
* `metadata` - A set of key pair values that will be passed to the instance
|
142
|
+
for configuration.
|
143
|
+
* `network` - A name or id that will be used to fetch network configuration
|
144
|
+
data when configuring the instance. NOTE: This is not compliant with the
|
145
|
+
vagrant network configurations.
|
146
|
+
* `networks` - An array of names or ids to create a server with multiple network interfaces. This overrides the `network` setting.
|
147
|
+
* `address_id` - A specific address identifier to use when connecting to the
|
148
|
+
instance. `network` has higher precedence. If set to :floating_ip, then
|
149
|
+
the floating IP address will be used.
|
150
|
+
* `scheduler_hints` - Pass hints to the open stack scheduler, see `--hint` flag in [OpenStack filters doc](http://docs.openstack.org/trunk/openstack-compute/admin/content/scheduler-filters.html)
|
151
|
+
* `availability_zone` - Specify the availability zone in which the instance
|
152
|
+
must be created.
|
153
|
+
* `security_groups` - List of security groups to be applied to the machine.
|
154
|
+
* `tenant` - Tenant name. You only need to specify this if your OpenStack user has access to multiple tenants.
|
155
|
+
* `region` - Region Name. Specify the region you want the instance to be launched in for multi-region environments.
|
156
|
+
* `proxy` - HTTP proxy. When behind a firewall override this value for API access.
|
157
|
+
* `ssl_verify_peer` - sets the ssl_verify_peer on the underlying excon connection - useful for self signed certs etc.
|
158
|
+
* `floating_ip` - Floating ip. The floating IP to assign for this instance. If
|
159
|
+
set to :auto, then this assigns any available floating IP to the instance. If set to :associate_unassigned, then it will use the next IP address which is unasssigned in the pool specified in floating_ip_pool.
|
160
|
+
* `floating_ip_pool` - Floating ip pool to allocate IP addresses from, if
|
161
|
+
floating_ip is set to :auto. Previously allocated addresses will not be
|
162
|
+
used, and addresses allocated here will be released when the VM is destroyed.
|
163
|
+
* `orchestration_stack_name` - Name for orchestration stack. Mandatory
|
164
|
+
parameter when creating new stack. One of parameters for template should be
|
165
|
+
set with this parameter.
|
166
|
+
* `orchestration_stack_destroy` - If stack created by vagrant should be deleted
|
167
|
+
when destroy action is invoked. Default value is `false`.
|
168
|
+
* `orchestration_cfn_template` - AWS CloudFormation Template specified as a string.
|
169
|
+
* `orchestration_cfn_template_file` - AWS CloudFormation Template file path
|
170
|
+
accessible for vagrant.
|
171
|
+
* `orchestration_cfn_template_url` - AWS CloudFormation Template URL.
|
172
|
+
* `orchestration_cfn_template_parameters` - AWS CloudFormation Template
|
173
|
+
parameters specified in ruby hash (take a look at example Vagrantfile).
|
174
|
+
This parameter is optional.
|
175
|
+
* `disks` - Array of disk specifications to create or attach
|
176
|
+
|
177
|
+
These can be set like typical provider-specific configuration:
|
178
|
+
|
179
|
+
```ruby
|
180
|
+
Vagrant.configure("2") do |config|
|
181
|
+
# ... other stuff
|
182
|
+
|
183
|
+
config.vm.provider :openstack do |rs|
|
184
|
+
rs.username = "mitchellh"
|
185
|
+
rs.api_key = "foobarbaz"
|
186
|
+
end
|
187
|
+
end
|
188
|
+
```
|
189
|
+
|
190
|
+
## Networks
|
191
|
+
|
192
|
+
Static IP assignment is supported by doing the following:
|
193
|
+
|
194
|
+
First, define one or more networks with `os.networks`:
|
195
|
+
|
196
|
+
```ruby
|
197
|
+
os.networks = ['network1', 'network2']
|
198
|
+
```
|
199
|
+
|
200
|
+
Next, configure those networks using `config.vm.network`:
|
201
|
+
|
202
|
+
```ruby
|
203
|
+
config.vm.network 'private_network', ip: '192.168.1.100'
|
204
|
+
config.vm.network 'private_network', ip: '192.168.2.100'
|
205
|
+
```
|
206
|
+
|
207
|
+
Note that the order must be the same as the order in `os.networks`.
|
208
|
+
If you only want to configure the second NIC with a static IP, do
|
209
|
+
the following:
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
config.vm.network 'private_network', type: 'dhcp'
|
213
|
+
config.vm.network 'private_network', ip: '192.168.2.100'
|
214
|
+
```
|
215
|
+
|
216
|
+
## Synced Folders
|
217
|
+
|
218
|
+
There is minimal support for synced folders. Upon `vagrant up`,
|
219
|
+
`vagrant reload`, and `vagrant provision`, the OpenStack provider will use
|
220
|
+
`rsync` (if available) to uni-directionally sync the folder to
|
221
|
+
the remote machine over SSH.
|
222
|
+
|
223
|
+
This is good enough for all built-in Vagrant provisioners (shell,
|
224
|
+
chef, and puppet) to work!
|
225
|
+
|
226
|
+
## Command
|
227
|
+
|
228
|
+
### Snapshot
|
229
|
+
`vagrant openstack snapshot <vmname> -n <snapshotname>`
|
230
|
+
|
231
|
+
Take snapshot of ***vmname*** with name ***snapshotname***
|
232
|
+
|
233
|
+
## Contributors
|
234
|
+
|
235
|
+
- [mitchellh](https://github.com/mitchellh)
|
236
|
+
- [tkadauke](https://github.com/tkadauke)
|
237
|
+
- [srenatus](https://github.com/srenatus)
|
238
|
+
- [hvolkmer](https://github.com/hvolkmer)
|
239
|
+
- [ehaselwanter](https://github.com/ehaselwanter)
|
240
|
+
- [BRIMIL01](https://github.com/BRIMIL01)
|
241
|
+
- [jkburges](https://github.com/jkburges)
|
242
|
+
- [johnbellone](https://github.com/johnbellone)
|
243
|
+
- [mat128](https://github.com/mat128)
|
244
|
+
- [jtopjian](https://github.com/jtopjian)
|
245
|
+
- [antoviaque](https://github.com/antoviaque)
|
246
|
+
- [last-g](https://github.com/last-g)
|
247
|
+
- [spil-jasper](https://github.com/spil-jasper)
|
248
|
+
- [detiber](https://github.com/detiber)
|
249
|
+
- [RackerJohnMadrid](https://github.com/RackerJohnMadrid)
|
250
|
+
- [Lull3rSkat3r](https://github.com/Lull3rSkat3r)
|
251
|
+
- [nicobrevin](https://github.com/nicobrevin)
|
252
|
+
- [ohnoimdead](https://github.com/ohnoimdead)
|
253
|
+
- [cbaenziger](https://github.com/cbaenziger)
|
254
|
+
- [chealion](https://github.com/chealion)
|
255
|
+
|
256
|
+
## Development
|
257
|
+
|
258
|
+
To work on the `vagrant-openstack-plugin` plugin, clone this repository out, and use
|
259
|
+
[Bundler](http://gembundler.com) to get the dependencies:
|
260
|
+
|
261
|
+
```
|
262
|
+
$ bundle
|
263
|
+
```
|
264
|
+
|
265
|
+
Once you have the dependencies, verify the unit tests pass with `rake`:
|
266
|
+
|
267
|
+
```
|
268
|
+
$ bundle exec rake
|
269
|
+
```
|
270
|
+
|
271
|
+
If those pass, you're ready to start developing the plugin. You can test
|
272
|
+
the plugin without installing it into your Vagrant environment by just
|
273
|
+
creating a `Vagrantfile` in the top level of this directory (it is gitignored)
|
274
|
+
that uses it, and uses bundler to execute Vagrant:
|
275
|
+
|
276
|
+
```
|
277
|
+
$ bundle exec vagrant up --provider=openstack
|
278
|
+
```
|