vagrant-orchestrate 0.5.1 → 0.5.2
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +16 -3
- data/Rakefile +2 -1
- data/Vagrantfile +1 -0
- data/acceptance/command/provision_spec.rb +24 -0
- data/acceptance/support-skeletons/basic/Vagrantfile +0 -1
- data/acceptance/support-skeletons/provision/Vagrantfile +18 -0
- data/acceptance/support-skeletons/provision/dummy.box +0 -0
- data/lib/vagrant-orchestrate/command/init.rb +1 -1
- data/lib/vagrant-orchestrate/command/push.rb +6 -1
- data/lib/vagrant-orchestrate/version.rb +1 -1
- data/spec/vagrant-orchestrate/command/init_spec.rb +12 -1
- data/templates/vagrant/Vagrantfile.erb +3 -1
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f8bd501392dfda5915b4bbc00a06d46a27dd08c9
|
|
4
|
+
data.tar.gz: 0280f99653f43635042074898fd54ddbf428231c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e411ded7b83942b15f621d0c9ac97ef170b0a0748fafc294e591268a7eb8ce8bd76ccde29b79593223103440d5f8334c5567730091c2381b0ba65b1c44ff8201
|
|
7
|
+
data.tar.gz: 6dd06ba49cd7ce2b4ae961edc2f9cf267f51c9fb4f5ba31d219daab4dd99af92b0527e712c75619d7eebb3cf099e80edecb5b8ca149a6d4ed33551aa16a954f7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
0.5.2 (May 8th, 2015)
|
|
2
|
+
|
|
3
|
+
- Add the `--no-provision` option to the `orchestrate push` command. Useful for
|
|
4
|
+
first timers to gain confidence in using the tool or to be able to just reboot servers.
|
|
5
|
+
- Move the `winrm.transport = :sspinegotiate` declaration from the config level
|
|
6
|
+
to within the managed server section, allowing local Windows VMs to work again.
|
|
7
|
+
- Change the default for --puppet-librarian-puppet to false, as it was impacting
|
|
8
|
+
many Windows users.
|
|
9
|
+
|
|
1
10
|
0.5.1 (April 27th, 2015)
|
|
2
11
|
|
|
3
12
|
- Also short circuit a push operation with an error message if there are untracked files.
|
data/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
This is a Vagrant 1.6+ plugin that allows orchestrated deployments
|
|
9
9
|
to already provisioned (non-elastic) servers on top of the excellent [vagrant-managed-servers](http://github.com/tknerr/vagrant-managed-servers) plugin.
|
|
10
|
-
It features a powerful templating `init` command, support for multiple environments, several deployment strategies
|
|
10
|
+
It features a powerful templating `init` command, support for multiple environments, several deployment strategies
|
|
11
11
|
and is designed from the ground up to be cross-platform, with first class support for **Windows,
|
|
12
12
|
Linux, and Mac**.
|
|
13
13
|
|
|
@@ -192,10 +192,23 @@ managed-3 Status unavailable.
|
|
|
192
192
|
managed-4 2015-04-19 00:43:07 UTC e983dddd8041c5db77494266328f1d266430f57d cbaldauf
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
-
##
|
|
195
|
+
## Windows
|
|
196
|
+
|
|
197
|
+
### Host
|
|
196
198
|
|
|
197
199
|
* Need rsync? Install [OpenSSH](http://www.mls-software.com/opensshd.html) and then run this [script](https://github.com/joefitzgerald/packer-windows/blob/master/scripts/rsync.bat) to install rsync. Vagrant managed servers currently only works with cygwin based rsync implementations.
|
|
198
|
-
|
|
200
|
+
|
|
201
|
+
### Managed Guest
|
|
202
|
+
You'll need to bootstrap the target machine. The following script should get you there.
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
winrm quickconfig
|
|
206
|
+
winrm set winrm/config/service/auth @{Negotiate="true"}
|
|
207
|
+
winrm set winrm/config/service @{AllowUnencrypted="false"}
|
|
208
|
+
sc config winrm start= auto
|
|
209
|
+
sc config winrm type= own
|
|
210
|
+
```
|
|
211
|
+
* Check out [the winrm-s readme](https://github.com/Cimpress-MCP/vagrant-winrm-s/blob/master/README.md#setting-up-your-server) for more information
|
|
199
212
|
|
|
200
213
|
## Contributing
|
|
201
214
|
|
data/Rakefile
CHANGED
|
@@ -17,7 +17,8 @@ task :acceptance do
|
|
|
17
17
|
# To ensure the ntp sync happens even if the servers are already up
|
|
18
18
|
system("vagrant provision /local/")
|
|
19
19
|
ENV["VAGRANT_ORCHESTRATE_NO_GUARD_CLEAN"] = "true"
|
|
20
|
-
system("bundle exec vagrant-spec test
|
|
20
|
+
system("bundle exec vagrant-spec test \
|
|
21
|
+
--components=orchestrate/push orchestrate/prompt orchestrate/status orchestrate/provision")
|
|
21
22
|
puts "Destroying target servers"
|
|
22
23
|
system("vagrant destroy -f /local/")
|
|
23
24
|
end
|
data/Vagrantfile
CHANGED
|
@@ -2,6 +2,7 @@ managed_servers = %w( 192.168.10.80 192.168.10.81 192.168.10.82 192.168.10.83)
|
|
|
2
2
|
|
|
3
3
|
Vagrant.configure(2) do |config|
|
|
4
4
|
config.orchestrate.filter_managed_commands = true
|
|
5
|
+
config.vm.provision :shell, inline: "echo hello"
|
|
5
6
|
|
|
6
7
|
# These boxes are defined locally to enable acceptance testing. Spinning up
|
|
7
8
|
# real boxes in the vagrant-spec environment was expensive because it ignored
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "vagrant-spec"
|
|
2
|
+
|
|
3
|
+
describe "vagrant orchestrate provision", component: "orchestrate/provision" do
|
|
4
|
+
include_context "acceptance"
|
|
5
|
+
|
|
6
|
+
# This unique string gets echo'd as part of the provisioning process, so we
|
|
7
|
+
# can check the output for this string. See ../support-skeletons/provision/Vagrantfile
|
|
8
|
+
# for more info.
|
|
9
|
+
PROVISION_STRING = "6etrabEmU8ru8hapheph"
|
|
10
|
+
|
|
11
|
+
before do
|
|
12
|
+
environment.skeleton("provision")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "Runs the shell provisioner" do
|
|
16
|
+
result = execute("vagrant", "orchestrate", "push", "managed-1")
|
|
17
|
+
expect(result.stdout).to include(PROVISION_STRING)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "Doesn't run with --no-provision" do
|
|
21
|
+
result = execute("vagrant", "orchestrate", "push", "managed-1", "--no-provision")
|
|
22
|
+
expect(result.stdout).not_to include(PROVISION_STRING)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -7,7 +7,6 @@ Vagrant.configure(2) do |config|
|
|
|
7
7
|
managed.vm.provision "shell", inline: "date > /tmp/sync_time; sleep 3"
|
|
8
8
|
managed.vm.box = "managed-server-dummy"
|
|
9
9
|
managed.vm.box_url = "./dummy.box"
|
|
10
|
-
# TODO: Why in the world do I need this? I thought it was the default!
|
|
11
10
|
managed.ssh.password = "vagrant"
|
|
12
11
|
managed.vm.provider :managed do |provider|
|
|
13
12
|
provider.server = server
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
managed_servers = %w( 192.168.10.80 192.168.10.81 192.168.10.82 192.168.10.83 )
|
|
2
|
+
|
|
3
|
+
Vagrant.configure(2) do |config|
|
|
4
|
+
# Print a unique string that we can check the output for
|
|
5
|
+
config.vm.provision :shell, inline: "echo 6etrabEmU8ru8hapheph"
|
|
6
|
+
|
|
7
|
+
managed_servers.each_with_index do |server, index|
|
|
8
|
+
config.vm.define "managed-#{index + 1}" do |managed|
|
|
9
|
+
managed.vm.provision "shell", inline: "echo 'hello world'"
|
|
10
|
+
managed.vm.box = "managed-server-dummy"
|
|
11
|
+
managed.vm.box_url = "./dummy.box"
|
|
12
|
+
managed.ssh.password = "vagrant"
|
|
13
|
+
managed.vm.provider :managed do |provider|
|
|
14
|
+
provider.server = server
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
Binary file
|
|
@@ -23,7 +23,7 @@ module VagrantPlugins
|
|
|
23
23
|
options[:servers] = []
|
|
24
24
|
options[:environments] = []
|
|
25
25
|
options[:plugins] = DEFAULT_PLUGINS
|
|
26
|
-
options[:puppet_librarian_puppet] =
|
|
26
|
+
options[:puppet_librarian_puppet] = false
|
|
27
27
|
options[:puppet_hiera] = true
|
|
28
28
|
|
|
29
29
|
opts = OptionParser.new do |o|
|
|
@@ -27,11 +27,16 @@ module VagrantPlugins
|
|
|
27
27
|
def execute
|
|
28
28
|
options = {}
|
|
29
29
|
options[:force] = @env.vagrantfile.config.orchestrate.force_push
|
|
30
|
+
options[:provision] = true
|
|
30
31
|
|
|
31
32
|
opts = OptionParser.new do |o|
|
|
32
33
|
o.banner = "Usage: vagrant orchestrate push"
|
|
33
34
|
o.separator ""
|
|
34
35
|
|
|
36
|
+
o.on("--[no-]provision", "Enable or disable provisioning. Default is true") do |p|
|
|
37
|
+
options[:provision] = p
|
|
38
|
+
end
|
|
39
|
+
|
|
35
40
|
o.on("--reboot", "Reboot a managed server after the provisioning step") do
|
|
36
41
|
options[:reboot] = true
|
|
37
42
|
end
|
|
@@ -111,7 +116,7 @@ module VagrantPlugins
|
|
|
111
116
|
ENV["VAGRANT_ORCHESTRATE_COMMAND"] = "PUSH"
|
|
112
117
|
begin
|
|
113
118
|
batchify(machines, :up, options)
|
|
114
|
-
batchify(machines, :provision, options)
|
|
119
|
+
batchify(machines, :provision, options) if options[:provision]
|
|
115
120
|
upload_status_all(machines)
|
|
116
121
|
batchify(machines, :reload, options) if options[:reboot]
|
|
117
122
|
ensure
|
|
@@ -169,7 +169,16 @@ describe VagrantPlugins::Orchestrate::Command::Init do
|
|
|
169
169
|
expect(iso_env.vagrantfile.config.vm.communicator).to eq(:winrm)
|
|
170
170
|
expect(iso_env.vagrantfile.config.winrm.username).to eq(described_class::DEFAULT_WINRM_USERNAME)
|
|
171
171
|
expect(iso_env.vagrantfile.config.winrm.password).to eq(described_class::DEFAULT_WINRM_PASSWORD)
|
|
172
|
-
expect(iso_env.vagrantfile.config.winrm.transport).to eq(:
|
|
172
|
+
expect(iso_env.vagrantfile.config.winrm.transport).to eq(:plaintext)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
describe "sspinegotiate" do
|
|
177
|
+
let(:argv) { ["--winrm", "--servers", "server1"] }
|
|
178
|
+
it "creates a vagrantfile with the winrm communicator" do
|
|
179
|
+
subject.execute
|
|
180
|
+
config = iso_env.vagrantfile.machine_config(:server1, :managed, nil)[:config]
|
|
181
|
+
expect(config.winrm.transport).to eq(:sspinegotiate)
|
|
173
182
|
end
|
|
174
183
|
end
|
|
175
184
|
|
|
@@ -272,6 +281,8 @@ describe VagrantPlugins::Orchestrate::Command::Init do
|
|
|
272
281
|
subject.execute
|
|
273
282
|
vagrantfile = File.readlines(File.join(iso_env.cwd, "Vagrantfile")).join
|
|
274
283
|
expect(vagrantfile).to include("managed_servers = %w( server1 server2 )")
|
|
284
|
+
expect(iso_env.vagrantfile.machine_config(:server1, :managed, nil)).to_not be_nil
|
|
285
|
+
expect(iso_env.vagrantfile.machine_config(:server2, :managed, nil)).to_not be_nil
|
|
275
286
|
end
|
|
276
287
|
end
|
|
277
288
|
end
|
|
@@ -56,7 +56,6 @@ Vagrant.configure("2") do |config|
|
|
|
56
56
|
config.vm.communicator = "<%= communicator %>"
|
|
57
57
|
config.winrm.username = "<%= winrm_username %>"
|
|
58
58
|
config.winrm.password = "<%= winrm_password %>"
|
|
59
|
-
config.winrm.transport = :sspinegotiate
|
|
60
59
|
<% end -%>
|
|
61
60
|
|
|
62
61
|
config.vm.define "local", primary: true do |local|
|
|
@@ -70,6 +69,9 @@ Vagrant.configure("2") do |config|
|
|
|
70
69
|
box.vm.provider :managed do |provider|
|
|
71
70
|
provider.server = instance
|
|
72
71
|
end
|
|
72
|
+
<% if communicator == "winrm" =%>
|
|
73
|
+
box.winrm.transport = :sspinegotiate
|
|
74
|
+
<% end -%>
|
|
73
75
|
end
|
|
74
76
|
end
|
|
75
77
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vagrant-orchestrate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Christopher Baldauf
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -84,12 +84,15 @@ files:
|
|
|
84
84
|
- Rakefile
|
|
85
85
|
- Vagrantfile
|
|
86
86
|
- acceptance/command/prompt_spec.rb
|
|
87
|
+
- acceptance/command/provision_spec.rb
|
|
87
88
|
- acceptance/command/push_spec.rb
|
|
88
89
|
- acceptance/command/status_spec.rb
|
|
89
90
|
- acceptance/support-skeletons/basic/Vagrantfile
|
|
90
91
|
- acceptance/support-skeletons/basic/dummy.box
|
|
91
92
|
- acceptance/support-skeletons/prompt/Vagrantfile
|
|
92
93
|
- acceptance/support-skeletons/prompt/dummy.box
|
|
94
|
+
- acceptance/support-skeletons/provision/Vagrantfile
|
|
95
|
+
- acceptance/support-skeletons/provision/dummy.box
|
|
93
96
|
- docs/environments.md
|
|
94
97
|
- docs/puppet.md
|
|
95
98
|
- docs/strategy.md
|