Commit Graph

8800 Commits

Author SHA1 Message Date
Seth Vargo d77ad5c941
guests/arch: Configure networks in one command
This commit updates the procedure for configuring arch networks to occur
in a single command. Previously, each network was configured
independently. If, for some reason, one of the networks destroyed the
SSH connection, the box would be irrecoverable. This commit does not
alleviate that behavior, but attempts to mitigate it by running all
network-related configuration commands in a single communicator (SSH)
session.

The new procedure looks like this:

1. Upload a temp file to /tmp/vagrant-network-id... for each interface
  on the guest.
2. Compile a commands array (of bash) to execute after all network
  configurations have been uploaded.
3. Concatenate all the commands together in a single communicator
  session.

This was tested against `terrywant/archlinux` using the following Vagrantfile:

```ruby
Vagrant.configure(2) do |config|
  config.vm.box = "terrywang/archlinux"
  config.vm.hostname = "banana-ramama.example.com"

  config.vm.network "private_network", type: "dhcp"

  config.vm.network "private_network", ip: "33.33.33.10"

  config.vm.provision "file", source: "Vagrantfile", destination: "/tmp/vf"
  config.vm.provision "shell", inline: "echo hi"
end
```
2016-06-06 11:58:24 -04:00
Seth Vargo 41d61120a5
guests/arch: Change hostname in one command
This commit updates the procedure for changing the hostname on arch
guests to occur in a single command. Previously, setting the hostname
and adding the value of the hostname to the /etc/hosts file was done in
two different uploads. This reduces the cycle to a single upload, making
provisioning a bit faster.

Additionally, this changes the behavior of the /etc/hosts file to:

1. Not remove localhost as an alias of 127.0.0.1
2. Prepend our custom hostname before localhost

The resulting /etc/hosts file will look something like:

127.0.0.1 my-host.example.com my-host
127.0.0.1 localhost.mydomain localhost

Tested against `terrywang/archlinux` using the following Vagrantfile:

```ruby
Vagrant.configure(2) do |config|
  config.vm.box = "terrywang/archlinux"
  config.vm.hostname = "banana-ramama.example.com"

  config.vm.network "private_network", type: "dhcp"

  config.vm.network "private_network", ip: "33.33.33.10"

  config.vm.provision "file", source: "Vagrantfile", destination: "/tmp/vf"
  config.vm.provision "shell", inline: "echo hi"
end
```
2016-06-06 11:58:24 -04:00
Seth Vargo cbc90d6391 Update ISSUE_TEMPLATE.md 2016-06-06 09:58:25 -04:00
Seth Vargo 8d2ca8a1eb
Update CHANGELOG 2016-06-04 15:22:49 -04:00
Seth Vargo b3cabe0180 Merge pull request #7379 from mitchellh/sethvargo/update_uniq
core/boxes: Do not update the same box twice
2016-06-04 21:22:06 +02:00
Seth Vargo 9bec6c0a06 Merge pull request #7382 from falconed/master
provisioners/ansible: Fix documentation typo
2016-06-02 04:16:43 -05:00
Dan Falcone 219007c6e6 provisioners/ansible: Fix documentation typo 2016-06-01 20:01:10 -04:00
Seth Vargo 3fa30a71b0
provisioners/salt: Doc - fix typo 2016-06-01 08:31:31 -04:00
Gilles Cornu a7ee56459b provisioners/ansible(both): fix ansible config files presence checks
With this change, the presence of Ansible configuration files (like
playbook file, inventory path, galaxy role file, etc.) is no longer
performed by the `config` classes, but by the `provisioner` classes
(at the beginning of the provision command).

This change fixes several issues:

- Resolve #6984 as `provision` method are only executed when remote
  (ssh) communication with the guest machine is possible.
- Resolve #6763 in a better way than 4e451c6 initially did.
- Improve the general provisioner speed since the `config` checks are
  actually triggered by many vagrant actions (e.g. `destroy`,...), and
  can also be triggered multiple times during a vagrant run (e.g. on
  callback request made by the machine provider).

Unlike the former `config`-based checks, the provision action won't
collect all the invalid options, but only report the first invalid
option found and abort the execution.

Some unit tests were not implemented yet to save my scarce "open source
contribution time" for other important issues, but they should be done
at last via GH-6633.
2016-06-01 06:40:23 +02:00
Seth Vargo dab4537682
core/boxes: Do not update the same box twice
Vagrant's environment (which includes the known list of boxes and
versions) is established at the start of the Vagrant run. This means
that box downloads which occur during the run are not contained in the
set until the next run. This causes duplicate box downloads to raise an
error in multi-machine Vagrantfiles.

This commit fixes that issue by pre-processing the machines by provider
and version, creating a unique set of boxes to update.

Fixes GH-6042
2016-05-31 23:08:51 -04:00
Seth Vargo 228abf27a6
provisioner/salt: fix orchestrations documentation
Fixes GH-7209
2016-05-31 22:06:57 -04:00
Seth Vargo 37cdabc2e7
Update CHANGELOG 2016-05-31 20:10:16 -04:00
Seth Vargo 8c17807080 Merge pull request #7377 from mitchellh/sethvargo/docker-exec
Add docker-exec
2016-05-31 20:08:57 -04:00
Seth Vargo e270e7df27
provider/docker: Add -u flag to exec 2016-05-31 20:05:27 -04:00
Seth Vargo cfac24779c
provider/docker: Separate -i and -t flags for exec 2016-05-31 20:05:27 -04:00
Seth Vargo bf96b3348b
provider/docker: Add docker-exec command
This adds a new core command, `docker-exec`, which allows the user to
exec into an already-running container.

- Fixes #6566
- Fixes #5193
- Fixes #4904
- Fixes #4057
- Fixes #4179
- Fixes #4903
2016-05-31 20:05:26 -04:00
Seth Vargo 084a8e8fe7 Merge pull request #7376 from karlkfi/karlkfi/gem-all
Don't restore Gem::Specification.all if it's not being replaced
2016-05-31 17:59:25 -04:00
Seth Vargo 9a28a03b2c
Update CHANGELOG 2016-05-31 17:56:40 -04:00
Seth Vargo e1ea81847d Merge pull request #7276 from ryanheffernan/fix/master/issue7275
Adding Fedora IPv6 Static Address Support
2016-05-31 17:55:41 -04:00
Karl Isenberg f084fc7d78 Revert 3f9fb2ef03 from GH-2769
- For compatibility with ba77d4b533

Fixes GH-7073
2016-05-31 14:52:43 -07:00
Mitchell Hashimoto e2fd0dd792
Up bundler dep 2016-05-31 12:53:39 -07:00
Seth Vargo cf02135290 Merge pull request #7359 from mitchellh/sethvargo/cache_platform
Cache the results of common operations
2016-05-31 11:03:46 -04:00
Seth Vargo 49ce775b53
Prefix tempfiles with vagrant- 2016-05-31 00:18:16 -04:00
Seth Vargo 97f5ace2f2 Merge pull request #7370 from mitchellh/sethvargo/rm_custom_tempfile
Remove custom tempfile class
2016-05-30 23:29:03 -04:00
Seth Vargo 7014aa3bab
Remove custom tempfile class
This is not actually providing any additional utility and also causes
namespace conflicts with people trying to use the real Tempfile class.
2016-05-30 23:21:47 -04:00
Seth Vargo f2c769dd4f
Merge branch 'sethvargo/erb_no_sudo' 2016-05-30 21:02:27 -04:00
Seth Vargo 9c5404c9b8
Update CHANGELOG 2016-05-30 21:02:09 -04:00
Seth Vargo 631935d9a2 Merge pull request #7369 from mitchellh/sethvargo/erb_no_sudo
Remove sudo from generated Vagrantfile
2016-05-30 21:01:16 -04:00
Seth Vargo 9ca4a8d800
Remove sudo from generated Vagrantfile
This is unneeded because, by default, provisioners run as a privileged
user.

Fixes GH-7295
2016-05-30 20:47:13 -04:00
Seth Vargo 2a230a11e2
Cache the results of common operations
This commit changes Vagrant::Util::Platform to cache the result of some
common operations. These values are highly unlikely to change over the
course of a single Vagrant run and they are only cached for that run.
2016-05-30 18:27:12 -04:00
Seth Vargo 4c7069d7c9 Merge pull request #7366 from mitchellh/sethvargo/doc_no_parallel
Document VAGRANT_NO_PARALLEL
2016-05-30 17:31:48 -04:00
Seth Vargo 0216a09bf2
Document VAGRANT_NO_PARALLEL
Fixes GH-6014
2016-05-30 17:28:23 -04:00
Seth Vargo ef2ddcec26
Update CHANGELOG 2016-05-30 17:28:11 -04:00
Seth Vargo 12ad08235e Merge pull request #7365 from mitchellh/sethvargo/docker_fports
providers/docker: Allow TCP and UDP ports on same number
2016-05-30 17:27:01 -04:00
Seth Vargo 38f23fe001
providers/docker: Allow TCP and UDP ports on same number
This commit changes the way ports are aggregated in the Docker provider.
Previously ports were aggregated by their "number", but that is not a
truly unique representation. Instead, the protocol is now taken into
account when generating the port map.

Fixes GH-5527
2016-05-30 17:23:44 -04:00
Seth Vargo 44ce6a4bc7 Merge pull request #7364 from mitchellh/sethvargo/force_color
Allow users to force color
2016-05-30 15:59:52 -04:00
Seth Vargo b95e5d80f5
Allow users to force color
Fixes GH-5390
2016-05-30 15:56:09 -04:00
Seth Vargo 4236ddc021
Update CHANGELOG 2016-05-30 15:38:37 -04:00
Seth Vargo 3e3f19a548 Merge pull request #7363 from mitchellh/sethvargo/init_box_version
Add --box-version to `vagrant init`
2016-05-30 15:37:18 -04:00
Seth Vargo bba1cbc72f
Add --box-version to `vagrant init`
This also adds a test suite for that particular command, updates the
documentation, and adds some examples.

Fixes GH-5004
2016-05-30 15:33:58 -04:00
Seth Vargo f7ffec3589
Update CHANGELOG 2016-05-29 18:48:21 -04:00
Seth Vargo c79594f5d1 Merge pull request #7360 from mitchellh/sethvargo/custom_ssh
Allow customization of keys_only & paranoid SSH
2016-05-29 18:47:15 -04:00
Seth Vargo d44fcf2d52
Allow customization of keys_only & paranoid SSH
This adds two new SSH configuration options:

- `keys_only`
- `paranoid`

These values were previously hard-coded, but can now be user-specified.

Fixes GH-4275
2016-05-29 18:03:03 -04:00
Seth Vargo 791ad7ac8e
Update CHANGELOG 2016-05-29 14:48:56 -04:00
Seth Vargo 7301ce5de3 Merge pull request #7358 from mitchellh/sethvargo/pr-6620
Restart container if newer build is available
2016-05-29 14:47:42 -04:00
Seth Vargo aaef5da41d
Use a different info message when image changed 2016-05-29 14:38:18 -04:00
Luca Invernizzi d8c56be510
Restart docker container if newer image build is available. 2016-05-29 14:38:18 -04:00
Gilles Cornu 8190fba872 provisoners/ansible: improve config test coverage
Changes:

- Add "config" unit tests for `ansible_local` (guest)
- Share some "config" examples between both ansible provisioners
- Move `config_host.rb` specific examples to `config/host.rb`
- Add a requirement to "../helpers" in `config/guest.rb` in order to be
  able to run the related unit tests

References:

- This is the first part of GH-6633 resolution
- This change is a handy prerequisite for GH-6570

Not addressed yet:

- FIXME (guest.rb): Some test-double stubs are currently not working as
  expected, and the related checks are commented out for the moment
  (no idea why, but this is not urgent to be fixed because of GH-7335
  rejection. See also GH-6984)
- FIXME (shared.rb): The guest-based config should actually NOT return
  an error when the extra_vars file cannot be found, but only display a
  a warning (similarly to the changes done for GH-6763, see 4e451c6)
2016-05-29 17:01:37 +02:00
Seth Vargo 9b30557716 Merge pull request #7009 from daks/patch-1
puppet_apply doc: small typo fix
2016-05-29 01:22:15 -04:00
Seth Vargo 131c8c811e
Update CHANGELOG 2016-05-29 01:20:56 -04:00