vagrant-proxyconf 2.0.4 → 2.0.5
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 +5 -5
- data/.travis.yml +0 -2
- data/CHANGELOG.md +86 -0
- data/README.md +21 -0
- data/lib/vagrant-proxyconf/action/base.rb +9 -5
- data/lib/vagrant-proxyconf/config/apt_proxy.rb +21 -2
- data/lib/vagrant-proxyconf/version.rb +1 -1
- data/spec/unit/support/shared/apt_proxy_config.rb +12 -0
- data/spec/unit/vagrant-proxyconf/action/configure_svn_proxy_spec.rb +1 -0
- data/test/issues/172/README.md +2 -2
- data/test/issues/192/.rspec +2 -0
- data/test/issues/192/Dockerfile +47 -0
- data/test/issues/192/Dockerfile.bionic +40 -0
- data/test/issues/192/README.md +29 -0
- data/test/issues/192/Rakefile +27 -0
- data/test/issues/192/Vagrantfile +64 -0
- data/test/issues/192/entrypoint.sh +50 -0
- data/test/issues/192/spec/default/redhat_spec.rb +15 -0
- data/test/issues/192/spec/docker_host/ubuntu_spec.rb +3 -0
- data/test/issues/192/spec/spec_helper.rb +52 -0
- data/test/issues/192/tinyproxy.conf +333 -0
- data/test/issues/199/.rspec +2 -0
- data/test/issues/199/Dockerfile +47 -0
- data/test/issues/199/README.md +31 -0
- data/test/issues/199/Rakefile +27 -0
- data/test/issues/199/Vagrantfile +74 -0
- data/test/issues/199/entrypoint.sh +50 -0
- data/test/issues/199/spec/apt_host/ubuntu_spec.rb +135 -0
- data/test/issues/199/spec/default/redhat_spec.rb +15 -0
- data/test/issues/199/spec/spec_helper.rb +52 -0
- data/test/issues/199/tinyproxy.conf +333 -0
- metadata +45 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a7a1cd739f80a73e0310fcc60987e1c3fb2e41436078e2d5ffa6d88d95769877
|
4
|
+
data.tar.gz: 1d40a68b9ec904f7bc84ee8959ec861a5d22eb479d2be90c4fb2710ccd7040cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96341ff59ad6ca3a2d4a4d3dd125b15496d805c48c0daa35941a2ca96cf0f4f5ebb8e6b915977943791b70171d7349fe9420b018ffa6129b4a7b98b727a62316
|
7
|
+
data.tar.gz: 560894fbc39dd0b14e1ac0df447c786c7e62f0a189f7b062415665cd87a394e89813eca9234591d740d0a05ece76109d22a9638c4db5b7a4b59daaaeb86d3b33
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,89 @@
|
|
1
|
+
# 2.0.6 / NOT_RELEASED_YET
|
2
|
+
|
3
|
+
# 2.0.5 / 2019-07-27
|
4
|
+
|
5
|
+
#### Deprecations:
|
6
|
+
|
7
|
+
- Dropped support for vagrant 1.9.8 due to our tests failinging and it's more than 2 years old.
|
8
|
+
|
9
|
+
#### Credits
|
10
|
+
|
11
|
+
- Credit to this release goes to @greut. Thank you for your detailed information and for reporting a solution.
|
12
|
+
|
13
|
+
This is a feature enhancement for the APT proxy configuration when using
|
14
|
+
a proxy that is terminating SSL. By default, these settings are left
|
15
|
+
as-is and only enabled when a user wants to configure these settings.
|
16
|
+
This feature supports enabling/disabling the follwoing settings
|
17
|
+
|
18
|
+
#### file `/etc/apt/apt.conf.d/01proxy`
|
19
|
+
|
20
|
+
```
|
21
|
+
Acquire::https::Verify-Host
|
22
|
+
Acquire::https::Verify-Peer
|
23
|
+
```
|
24
|
+
|
25
|
+
#### Configuration settings for `Acquire::https::Verify-Host` and `Acquire::https::Verify-Peer`
|
26
|
+
|
27
|
+
* The value for these settings must be a string.
|
28
|
+
* When `"true"` enable the setting
|
29
|
+
* When `"false"` disable the setting
|
30
|
+
* When `""` this setting is removed.
|
31
|
+
|
32
|
+
#### Example Inside the Vagrantfile
|
33
|
+
|
34
|
+
```
|
35
|
+
Vagrant.configure("2") do |config|
|
36
|
+
|
37
|
+
config.vm.define 'apt_host' do |c|
|
38
|
+
c.vm.box = "bento/ubuntu-18.04"
|
39
|
+
|
40
|
+
if Vagrant.has_plugin?('vagrant-proxyconf')
|
41
|
+
c.proxy.http = ENV['HTTP_PROXY']
|
42
|
+
c.proxy.https = ENV['HTTPS_PROXY']
|
43
|
+
c.proxy.no_proxy = ENV['NO_PROXY']
|
44
|
+
c.apt_proxy.verify_host = "false"
|
45
|
+
c.apt_proxy.verify_peer = "false"
|
46
|
+
|
47
|
+
c.proxy.enabled = {
|
48
|
+
:apt => {
|
49
|
+
:enabled => true,
|
50
|
+
:skip => false,
|
51
|
+
},
|
52
|
+
:env => {
|
53
|
+
:enabled => true,
|
54
|
+
:skip => false,
|
55
|
+
},
|
56
|
+
:git => {
|
57
|
+
:enabled => true,
|
58
|
+
:skip => false,
|
59
|
+
}
|
60
|
+
}
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
```
|
66
|
+
|
67
|
+
#### Example setting the environment variables
|
68
|
+
|
69
|
+
```
|
70
|
+
export VAGRANT_APT_VERIFY_HOST="false"
|
71
|
+
export VAGRANT_APT_VERIFY_PEER="false"
|
72
|
+
vagrant up
|
73
|
+
vagrant provision
|
74
|
+
```
|
75
|
+
|
76
|
+
**NOTE** If you change a setting in your `Vagrantfile` and the box is
|
77
|
+
running, you can run `vagrant provision` or `vagrant reload` to adjust
|
78
|
+
the settings.
|
79
|
+
|
80
|
+
Supporting Issues:
|
81
|
+
- https://github.com/tmatilai/vagrant-proxyconf/issues/199
|
82
|
+
|
83
|
+
Supporting Integration Tests:
|
84
|
+
- Look at the examples in directory [199](test/issues/199/)
|
85
|
+
|
86
|
+
|
1
87
|
# 2.0.4 / 2019-07-24
|
2
88
|
|
3
89
|
This is a bug fix release to address a logic issue for supporting docker
|
data/README.md
CHANGED
@@ -237,6 +237,8 @@ VAGRANT_APT_HTTP_PROXY="http://proxy.example.com:8080" vagrant up
|
|
237
237
|
| apt | `VAGRANT_APT_HTTP_PROXY` | Configures APT http proxy | Highest |
|
238
238
|
| | `VAGRANT_APT_HTTPS_PROXY` | Configures APT https proxy | Highest |
|
239
239
|
| | `VAGRANT_APT_FTP_PROXY` | Configures APT ftp proxy | Highest |
|
240
|
+
| | `VAGRANT_APT_VERIFY_PEER` | Configures APT Verify-Peer | Highest |
|
241
|
+
| | `VAGRANT_APT_VERIFY_HOST` | Configures APT Verify-Host | Highest |
|
240
242
|
| chef | `VAGRANT_CHEF_HTTP_PROXY` | Configures CHEF http proxy | Highest |
|
241
243
|
| | `VAGRANT_CHEF_HTTPS_PROXY` | Configures CHEF https proxy | Highest |
|
242
244
|
| | `VAGRANT_CHEF_NO_PROXY` | Configures CHEF no proxy | Highest |
|
@@ -330,3 +332,22 @@ unless ENV.key?('VAGRANT_INSTALLER_EMBEDDED_DIR')
|
|
330
332
|
end
|
331
333
|
end
|
332
334
|
```
|
335
|
+
|
336
|
+
# Contributors
|
337
|
+
|
338
|
+
* @tmatilai
|
339
|
+
* @otahi
|
340
|
+
* @jperville
|
341
|
+
* @johnbellone
|
342
|
+
* @SaschaGuenther
|
343
|
+
* @mrsheepuk
|
344
|
+
* @vboerchers
|
345
|
+
* @rlaveycal
|
346
|
+
* @pomeh
|
347
|
+
* @mynamewastaken
|
348
|
+
* @lawsonj2019
|
349
|
+
* @jonekdahl
|
350
|
+
* @hexmode
|
351
|
+
* @craigmunro
|
352
|
+
* @greut
|
353
|
+
* @codylane
|
@@ -87,13 +87,17 @@ module VagrantPlugins
|
|
87
87
|
local_tmp = tempfile(config)
|
88
88
|
|
89
89
|
logger.debug "Configuration (#{path}):\n#{config}"
|
90
|
+
|
90
91
|
@machine.communicate.tap do |comm|
|
91
|
-
comm.sudo("rm -f #{tmp}", error_check: false)
|
92
92
|
comm.upload(local_tmp.path, tmp)
|
93
|
-
comm.
|
94
|
-
|
95
|
-
|
96
|
-
|
93
|
+
if comm.test("command -v sudo")
|
94
|
+
comm.sudo("chmod #{opts[:mode] || '0644'} #{tmp}")
|
95
|
+
comm.sudo("chown #{opts[:owner] || 'root:root'} #{tmp}")
|
96
|
+
comm.sudo("mkdir -p #{File.dirname(path)}")
|
97
|
+
comm.sudo("mv -f #{tmp} #{path}")
|
98
|
+
else
|
99
|
+
raise Vagrant::Errors::CommandUnavailable.new(file: "sudo")
|
100
|
+
end
|
97
101
|
end
|
98
102
|
end
|
99
103
|
|
@@ -20,6 +20,12 @@ module VagrantPlugins
|
|
20
20
|
# @return [String] the FTP proxy
|
21
21
|
key :ftp, env_var: 'VAGRANT_APT_FTP_PROXY'
|
22
22
|
|
23
|
+
# @return [String] whether APT should verify peer certificate
|
24
|
+
key :verify_peer, env_var: 'VAGRANT_APT_VERIFY_PEER'
|
25
|
+
|
26
|
+
# @return [String] whether APT should verify that certificate name matches server name
|
27
|
+
key :verify_host, env_var: 'VAGRANT_APT_VERIFY_HOST'
|
28
|
+
|
23
29
|
def finalize!
|
24
30
|
super
|
25
31
|
|
@@ -33,7 +39,15 @@ module VagrantPlugins
|
|
33
39
|
|
34
40
|
# (see KeyMixin#config_for)
|
35
41
|
def config_for(key, value)
|
36
|
-
|
42
|
+
if value
|
43
|
+
if key.name == :verify_host
|
44
|
+
%Q{Acquire::https::Verify-Host #{value.inspect};\n}
|
45
|
+
elsif key.name == :verify_peer
|
46
|
+
%Q{Acquire::https::Verify-Peer #{value.inspect};\n}
|
47
|
+
else
|
48
|
+
%Q{Acquire::#{key.name}::Proxy #{value.inspect};\n}
|
49
|
+
end
|
50
|
+
end
|
37
51
|
end
|
38
52
|
|
39
53
|
def finalize_uri(key, value)
|
@@ -55,7 +69,8 @@ module VagrantPlugins
|
|
55
69
|
end
|
56
70
|
|
57
71
|
def to_s
|
58
|
-
direct || "#{prefix}#{value}#{suffix}"
|
72
|
+
# direct || "#{prefix}#{value}#{suffix}"
|
73
|
+
direct || verify || "#{prefix}#{value}#{suffix}"
|
59
74
|
end
|
60
75
|
|
61
76
|
private
|
@@ -64,6 +79,10 @@ module VagrantPlugins
|
|
64
79
|
'DIRECT' if value.upcase == 'DIRECT'
|
65
80
|
end
|
66
81
|
|
82
|
+
def verify
|
83
|
+
value if ["true", "false"].to_set.include? value
|
84
|
+
end
|
85
|
+
|
67
86
|
# Hash of deprecation warning sentinels
|
68
87
|
@@warned = {}
|
69
88
|
|
@@ -8,6 +8,10 @@ end
|
|
8
8
|
def conf_line(proto, name, port = 3142)
|
9
9
|
if name == :direct
|
10
10
|
%Q{Acquire::#{proto}::Proxy "DIRECT";\n}
|
11
|
+
elsif proto == :verify_peer
|
12
|
+
%Q{Acquire::https::Verify-Peer "#{name}";\n}
|
13
|
+
elsif proto == :verify_host
|
14
|
+
%Q{Acquire::https::Verify-Host "#{name}";\n}
|
11
15
|
else
|
12
16
|
port = ":#{port}" if port
|
13
17
|
%Q{Acquire::#{proto}::Proxy "#{proto}://#{name}#{port}";\n}
|
@@ -65,6 +69,14 @@ shared_examples "apt proxy config" do |proto|
|
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
72
|
+
[:verify_peer, :verify_host].each do |verify|
|
73
|
+
context "with #{verify.inspect}" do
|
74
|
+
subject { config_with(verify => "false") }
|
75
|
+
its(:enabled?) { should be_truthy }
|
76
|
+
its(:to_s) { should eq conf_line(verify, "false") }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
68
80
|
[false, ""].each do |unset|
|
69
81
|
context "with #{unset.inspect}" do
|
70
82
|
subject { config_with(proto => unset) }
|
@@ -4,6 +4,7 @@ require 'vagrant-proxyconf/action/configure_svn_proxy'
|
|
4
4
|
def mock_write_config(machine)
|
5
5
|
allow(machine).to receive_message_chain(:communicate, :sudo).with("rm -f /tmp/vagrant-proxyconf", error_check: false)
|
6
6
|
allow(machine).to receive_message_chain(:communicate, :upload)
|
7
|
+
allow(machine).to receive_message_chain(:communicate, :test).with('command -v sudo').and_return(true)
|
7
8
|
allow(machine).to receive_message_chain(:communicate, :sudo).with("chmod 0644 /tmp/vagrant-proxyconf")
|
8
9
|
allow(machine).to receive_message_chain(:communicate, :sudo).with("chown root:root /tmp/vagrant-proxyconf")
|
9
10
|
allow(machine).to receive_message_chain(:communicate, :sudo).with("mkdir -p /etc/subversion")
|
data/test/issues/172/README.md
CHANGED
@@ -10,7 +10,7 @@ bundle exec vagrant up default
|
|
10
10
|
## Expect
|
11
11
|
|
12
12
|
|
13
|
-
### Box `default
|
13
|
+
### Box `default`
|
14
14
|
|
15
15
|
- The box `default` is a docker container that will be a reverse
|
16
16
|
proxy. It should provision itself and work without errors.
|
@@ -21,7 +21,7 @@ bundle exec vagrant up default
|
|
21
21
|
- **NOTE**: You'll need to use `docker exec <hash> -it bash` to get into the container
|
22
22
|
|
23
23
|
|
24
|
-
### Box `
|
24
|
+
### Box `docker_host`
|
25
25
|
|
26
26
|
- Vagrant should automatically instally docker-ce.
|
27
27
|
- The box should come up and provision itself with the proxy settings
|
@@ -0,0 +1,47 @@
|
|
1
|
+
FROM centos:7
|
2
|
+
|
3
|
+
ENV CI_USERNAME vagrant
|
4
|
+
ENV CI_PASSWORD vagrant
|
5
|
+
ENV CI_HOMEDIR /home/vagrant
|
6
|
+
ENV CI_SHELL /bin/bash
|
7
|
+
|
8
|
+
EXPOSE 8888
|
9
|
+
|
10
|
+
RUN yum clean all && \
|
11
|
+
yum makecache fast && \
|
12
|
+
yum -y install epel-release && \
|
13
|
+
yum clean expire-cache && \
|
14
|
+
yum -y install \
|
15
|
+
curl \
|
16
|
+
initscripts \
|
17
|
+
openssh-clients \
|
18
|
+
openssh-server \
|
19
|
+
sudo \
|
20
|
+
tinyproxy
|
21
|
+
|
22
|
+
RUN /usr/sbin/sshd-keygen && \
|
23
|
+
mkdir -p /var/run/sshd && \
|
24
|
+
rm -f /usr/lib/tmpfiles.d/systemd-nologin.conf
|
25
|
+
|
26
|
+
RUN if ! getent passwd $CI_USERNAME; then \
|
27
|
+
useradd -m -d ${CI_HOMEDIR} -s ${CI_SHELL} $CI_USERNAME; \
|
28
|
+
fi && \
|
29
|
+
echo "${CI_USERNAME}:${CI_PASSWORD}" | chpasswd && \
|
30
|
+
echo "${CI_USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
|
31
|
+
mkdir -p /etc/sudoers.d && \
|
32
|
+
echo "${CI_USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/${CI_USERNAME} && \
|
33
|
+
chmod 0440 /etc/sudoers.d/${CI_USERNAME} && \
|
34
|
+
mkdir -p ${CI_HOMEDIR}/.ssh && \
|
35
|
+
chown -R ${CI_USERNAME}:${CI_USERNAME} ${CI_HOMEDIR}/.ssh && \
|
36
|
+
chmod 0700 ${CI_HOMEDIR}/.ssh && \
|
37
|
+
curl -L https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub > ${CI_HOMEDIR}/.ssh/vagrant.pub && \
|
38
|
+
touch ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
39
|
+
grep -q "$(cat ${CI_HOMEDIR}/.ssh/vagrant.pub | awk '{print $2}')" ${CI_HOMEDIR}/.ssh/authorized_keys || cat ${CI_HOMEDIR}/.ssh/vagrant.pub >> ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
40
|
+
chown ${CI_USERNAME}:${CI_USERNAME} ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
41
|
+
chmod 0600 ${CI_HOMEDIR}/.ssh/authorized_keys
|
42
|
+
|
43
|
+
COPY tinyproxy.conf /etc/tinyproxy/tinyproxy.conf
|
44
|
+
COPY entrypoint.sh /entrypoint.sh
|
45
|
+
|
46
|
+
ENTRYPOINT ["/entrypoint.sh"]
|
47
|
+
CMD [ "start" ]
|
@@ -0,0 +1,40 @@
|
|
1
|
+
FROM ubuntu:bionic
|
2
|
+
|
3
|
+
ENV CI_USERNAME vagrant
|
4
|
+
ENV CI_PASSWORD vagrant
|
5
|
+
ENV CI_HOMEDIR /home/vagrant
|
6
|
+
ENV CI_SHELL /bin/bash
|
7
|
+
|
8
|
+
RUN apt-get -y update && \
|
9
|
+
mkdir -p /run/sshd && \
|
10
|
+
apt-get -y install \
|
11
|
+
apt-transport-https \
|
12
|
+
ca-certificates \
|
13
|
+
curl \
|
14
|
+
gnupg-agent \
|
15
|
+
openssh-client \
|
16
|
+
openssh-server \
|
17
|
+
software-properties-common \
|
18
|
+
sudo
|
19
|
+
|
20
|
+
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
|
21
|
+
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
|
22
|
+
rm -f /usr/lib/tmpfiles.d/systemd-nologin.conf && \
|
23
|
+
if ! getent passwd $CI_USERNAME; then \
|
24
|
+
useradd -m -d ${CI_HOMEDIR} -s ${CI_SHELL} $CI_USERNAME; \
|
25
|
+
fi && \
|
26
|
+
echo "${CI_USERNAME}:${CI_PASSWORD}" | chpasswd && \
|
27
|
+
echo "${CI_USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
|
28
|
+
mkdir -p /etc/sudoers.d && \
|
29
|
+
echo "${CI_USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/${CI_USERNAME} && \
|
30
|
+
chmod 0440 /etc/sudoers.d/${CI_USERNAME} && \
|
31
|
+
mkdir -p ${CI_HOMEDIR}/.ssh && \
|
32
|
+
chown -R ${CI_USERNAME}:${CI_USERNAME} ${CI_HOMEDIR}/.ssh && \
|
33
|
+
chmod 0700 ${CI_HOMEDIR}/.ssh && \
|
34
|
+
curl -L https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub > ${CI_HOMEDIR}/.ssh/vagrant.pub && \
|
35
|
+
touch ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
36
|
+
grep -q "$(cat ${CI_HOMEDIR}/.ssh/vagrant.pub | awk '{print $2}')" ${CI_HOMEDIR}/.ssh/authorized_keys || cat ${CI_HOMEDIR}/.ssh/vagrant.pub >> ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
37
|
+
chown ${CI_USERNAME}:${CI_USERNAME} ${CI_HOMEDIR}/.ssh/authorized_keys && \
|
38
|
+
chmod 0600 ${CI_HOMEDIR}/.ssh/authorized_keys
|
39
|
+
|
40
|
+
CMD [ "/usr/sbin/sshd", "-D" ]
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Tests
|
2
|
+
-----
|
3
|
+
|
4
|
+
If you are testing the current release of this plugin via bundler
|
5
|
+
|
6
|
+
```
|
7
|
+
bundle exec vagrant up default
|
8
|
+
```
|
9
|
+
|
10
|
+
## Expect
|
11
|
+
|
12
|
+
|
13
|
+
### Box `default`
|
14
|
+
|
15
|
+
- The box `default` is a docker container that will be a reverse
|
16
|
+
proxy. It should provision itself and work without errors.
|
17
|
+
|
18
|
+
- You can check that the proxy is working by
|
19
|
+
`tail -f /var/log/tinyproxy/tinyproxy.log` inside the container
|
20
|
+
|
21
|
+
- **NOTE**: You'll need to use `docker exec <hash> -it bash` to get into the container
|
22
|
+
|
23
|
+
|
24
|
+
### Box `docker-host`
|
25
|
+
|
26
|
+
- Vagrant should automatically instally docker-ce.
|
27
|
+
- The box should come up and provision itself with the proxy settings
|
28
|
+
configured in your Vagrantfile.
|
29
|
+
- **NOTE**: You can use `ssh` to connect to this container.
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
task :spec => 'spec:all'
|
5
|
+
task :default => :spec
|
6
|
+
|
7
|
+
namespace :spec do
|
8
|
+
targets = []
|
9
|
+
Dir.glob('./spec/*').each do |dir|
|
10
|
+
next unless File.directory?(dir)
|
11
|
+
target = File.basename(dir)
|
12
|
+
target = "_#{target}" if target == "default"
|
13
|
+
targets << target
|
14
|
+
end
|
15
|
+
|
16
|
+
task :all => targets
|
17
|
+
task :default => :all
|
18
|
+
|
19
|
+
targets.each do |target|
|
20
|
+
original_target = target == "_default" ? target[1..-1] : target
|
21
|
+
desc "Run serverspec tests to #{original_target}"
|
22
|
+
RSpec::Core::RakeTask.new(target.to_sym) do |t|
|
23
|
+
ENV['TARGET_HOST'] = original_target
|
24
|
+
t.pattern = "spec/#{original_target}/*_spec.rb"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# this should be the IP address of the :default box
|
2
|
+
$PROXY_HOST ="172.17.0.1"
|
3
|
+
$PROXY_PORT="8888"
|
4
|
+
$PROXY_NO_PROXY=[
|
5
|
+
'localhost',
|
6
|
+
]
|
7
|
+
|
8
|
+
ENV['HTTP_PROXY'] = ENV.fetch('HTTP_PROXY', "http://#{$PROXY_HOST}:#{$PROXY_PORT}")
|
9
|
+
ENV['HTTPS_PROXY'] = ENV.fetch('HTTPS_PROXY', "http://#{$PROXY_HOST}:#{$PROXY_PORT}")
|
10
|
+
ENV['NO_PROXY'] = ENV.fetch('NO_PROXY', $PROXY_NO_PROXY.join(","))
|
11
|
+
|
12
|
+
puts "HTTP_PROXY = '#{ENV["HTTP_PROXY"]}'"
|
13
|
+
puts "HTTPS_PROXY = '#{ENV["HTTPS_PROXY"]}'"
|
14
|
+
puts "NO_PROXY = '#{ENV["NO_PROXY"]}'"
|
15
|
+
|
16
|
+
puts "vagrant-proxyconf is installed? #{Vagrant.has_plugin?('vagrant-proxyconf')}"
|
17
|
+
|
18
|
+
|
19
|
+
Vagrant.configure("2") do |config|
|
20
|
+
|
21
|
+
config.vm.define 'default' do |c|
|
22
|
+
c.vm.box = nil
|
23
|
+
|
24
|
+
if Vagrant.has_plugin?('vagrant-proxyconf')
|
25
|
+
c.proxy.enabled = false
|
26
|
+
end
|
27
|
+
|
28
|
+
c.vm.provider "docker" do |d|
|
29
|
+
d.build_dir = "."
|
30
|
+
d.has_ssh = true
|
31
|
+
d.ports = [
|
32
|
+
"#{$PROXY_PORT}:#{$PROXY_PORT}",
|
33
|
+
]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
config.vm.define 'docker_host' do |c|
|
38
|
+
c.vm.box = nil
|
39
|
+
|
40
|
+
if Vagrant.has_plugin?('vagrant-proxyconf')
|
41
|
+
c.proxy.http = ENV['HTTP_PROXY']
|
42
|
+
c.proxy.https = ENV['HTTPS_PROXY']
|
43
|
+
c.proxy.no_proxy = ENV['NO_PROXY']
|
44
|
+
c.proxy.enabled = {
|
45
|
+
:apt => {
|
46
|
+
:enabled => true,
|
47
|
+
:skip => false,
|
48
|
+
},
|
49
|
+
:env => {
|
50
|
+
:enabled => false,
|
51
|
+
:skip => false,
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
c.vm.provider "docker" do |d|
|
57
|
+
d.build_dir = "."
|
58
|
+
d.dockerfile = "Dockerfile.bionic"
|
59
|
+
d.has_ssh = true
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|