vagrant-openstack-plugin-tom 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
```
|