vagrant-aws-winrm 0.0.6 → 0.0.7
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/README.md +26 -25
- data/lib/vagrant-aws-winrm/capability.rb +12 -4
- data/lib/vagrant-aws-winrm/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4aeb0b26db8e736561eea741413d6ebc9dd539d6
|
4
|
+
data.tar.gz: 14d589f4439c8fbe0e1d62dd60e98af81414cdc1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daf07e30a3cd32df7007f80b7dd25dd3340f7df93b9699b84b1f65f78a38fa5d1e5a8fb8648f7965230d5557697e9e44e19ca8bad5209f346d9475c9fdb2e126
|
7
|
+
data.tar.gz: c4523c8ad7ffb32e2d5c6129d1cb97cdc2b1914b61d40d217f5e382364107292ba00f6f7102ef26ac18c93ab4c55a649f83e5761004eb3aff9b6344d61e8c8c1
|
data/README.md
CHANGED
@@ -18,42 +18,43 @@ In your Vagrantfile, ensure you configure values for `aws.keypair_name` and `ssh
|
|
18
18
|
|
19
19
|
When configuring the WinRM credentials, use `Administrator` and `:aws` for the `winrm.username` and `winrm.password`, respectively.
|
20
20
|
|
21
|
+
Additionally, you will need to ensure that you set `aws.security_groups` with a Security Group that allows WinRM inbound (port 5985).
|
22
|
+
|
23
|
+
Finally, you can leverage `aws.user_data` to ensure that WinRM is enabled and the Windows Firewall is permitting WinRM inbound.
|
24
|
+
|
21
25
|
Example:
|
22
26
|
|
23
27
|
```
|
24
28
|
Vagrant.configure("2") do |config|
|
25
|
-
|
26
|
-
# Other stuff
|
29
|
+
# ... other stuff
|
27
30
|
|
28
|
-
config.vm.
|
29
|
-
|
30
|
-
aws.secret_access_key = "YOUR SECRET KEY"
|
31
|
-
aws.keypair_name = "KEYPAIR NAME"
|
32
|
-
override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
|
33
|
-
override.vm.communicator = "winrm"
|
34
|
-
override.winrm.username = "Administrator"
|
35
|
-
override.winrm.password = :aws
|
36
|
-
override.winrm.transport = :ssl
|
37
|
-
end
|
38
|
-
end
|
39
|
-
```
|
31
|
+
config.vm.communicator = "winrm"
|
32
|
+
config.winrm.username = "Administrator"
|
40
33
|
|
41
|
-
|
34
|
+
config.vm.provider "aws" do |aws, override|
|
35
|
+
# Indicate that the password should be fetched and decrypted from AWS
|
36
|
+
override.winrm.password = :aws
|
42
37
|
|
43
|
-
|
38
|
+
# private_key_path needed to decrypt the password
|
39
|
+
override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
|
44
40
|
|
45
|
-
|
46
|
-
|
47
|
-
winrm set winrm/config/service/auth @{Basic="true"}
|
48
|
-
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{CertificateThumbprint="YOUR CERT THUMBPRINT"}
|
49
|
-
```
|
41
|
+
# keypair name corresponding to private_key_path
|
42
|
+
aws.keypair_name = "KEYPAIR NAME"
|
50
43
|
|
51
|
-
|
44
|
+
# Use a security group that allows WinRM port inbound (port 5985)
|
45
|
+
aws.security_groups = ["SOME SECURITY GROUP THAT ALLOWS WINRM INBOUND"]
|
52
46
|
|
53
|
-
|
47
|
+
# Enable WinRM on the instance
|
48
|
+
aws.user_data = <<-USERDATA
|
49
|
+
<powershell>
|
50
|
+
Enable-PSRemoting -Force
|
51
|
+
netsh advfirewall firewall add rule name="WinRM HTTP" dir=in localport=5985 protocol=TCP action=allow
|
52
|
+
</powershell>
|
53
|
+
USERDATA
|
54
|
+
end
|
55
|
+
end
|
54
56
|
|
55
|
-
|
56
|
-
* [WinRM gem](https://github.com/WinRb/WinRM/blob/master/README.md#ssl)
|
57
|
+
```
|
57
58
|
|
58
59
|
## Contributing
|
59
60
|
|
@@ -12,8 +12,6 @@ module VagrantPlugins
|
|
12
12
|
|
13
13
|
def self.winrm_info(machine)
|
14
14
|
if machine.config.winrm.password == :aws
|
15
|
-
machine.ui.info('Getting WinRM password from AWS...')
|
16
|
-
|
17
15
|
# Call the VagrantPlugins::AWS::Action::ConnectAWS
|
18
16
|
# middleware so we can get acces to the Fog connection
|
19
17
|
machine.env.action_runner.run(
|
@@ -33,9 +31,19 @@ module VagrantPlugins
|
|
33
31
|
machine = env[:machine]
|
34
32
|
aws = env[:aws_compute]
|
35
33
|
|
36
|
-
|
37
|
-
|
34
|
+
@logger.info('Getting WinRM password from AWS...')
|
35
|
+
response = aws.get_password_data(machine.id)
|
36
|
+
password_data = response.body['passwordData']
|
37
|
+
|
38
|
+
if password_data.nil?
|
39
|
+
@logger.info('WinRM password not available from AWS yet.')
|
40
|
+
@logger.debug("Raising an exception to force a retry.")
|
41
|
+
raise VagrantPlugins::CommunicatorWinRM::Errors::TransientError, error_message: 'WinRM password not available from AWS yet.'
|
42
|
+
end
|
43
|
+
|
38
44
|
password_data_bytes = Base64.decode64(password_data)
|
45
|
+
|
46
|
+
machine.ui.info('Decrypting WinRM password from AWS...')
|
39
47
|
|
40
48
|
# Try to decrypt the password data using each one of the private key files
|
41
49
|
# set by the user until we hit one that decrypts successfully
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-aws-winrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafael Goodman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
64
|
rubyforge_project:
|
65
|
-
rubygems_version: 2.
|
65
|
+
rubygems_version: 2.6.8
|
66
66
|
signing_key:
|
67
67
|
specification_version: 4
|
68
68
|
summary: Facilitates using the AWS-EC2-provided Administrator password as the WinRM
|