Commit Graph

2054 Commits

Author SHA1 Message Date
Jeff Quast c6cce57ff4 Avoid double-newlines in salt-call output
When using the salt provisioner with verbose=true, most lines read with an extra newline:
```
[INFO    ] Syncing modules for environment 'base'

[INFO    ] Loading cache from salt://_modules, for base)

```

because the line read has a newline, and emitting the log entry again includes an additional newline.
2014-12-03 21:48:30 -08:00
Paul Hinze 25ff636ee2 providers/virtualbox: cleanup default vbox dhcp server
fixes #3083

Detect the presence of the default DHCP server that comes in a fresh
VirtualBox install and clean it up to prevent it from colliding with
Vagrant-managed network config.

In order to accomplish this, we:

 - add a `remove_dhcp_server` call to the virtualbox driver
 - fix dhcp options parsing to allow `:dhcp_{ip,lower,upper}`
   configuration options to make it through (so a user can override the
   removal behavior with some explicit configuration)
 - add the full `:network_name` to the details returned from
   `:read_dhcp_servers`, so we can have a durable value to pass to
   `:remove_dhcp_server`

Note that we do have to eat one more `VBoxManage list dhcpservers` for
each network interface to support this, but this seemed like a nominal
cost
2014-11-30 22:03:52 -06:00
Paul Hinze 24b6f21d1d providers/virtualbox: extract reading dhcpservers from hostonlyifs
This is just a refactor, no behavior change.

Instead of stitching together dhcpserver info in the structure returned
from `read_host_only_interfaces`, sprout a new driver method called
`read_dhcp_servers` to return that information separately.

This means that driver clients (well there's really only _one_ client in
`ProviderVirtualBox::Action::Network`) have to do a bit more work to get
interface and DHCP server information.

But this gives us (a) a cleaner and more consistent driver interface and
(b) groundwork for a fix for #3083, which will require interacting with
DHCP servers outside of the context of host-only interfaces.
2014-11-30 22:03:52 -06:00
Gilles Cornu f96636587a provisioners/ansible: don't read/write known_hosts
Like Vagrant's default SSH behaviors (e.g ssh or ssh-config commands),
the Ansible provisioner should by default not modify or read the user
known host file (e.g. ~/.ssh/known_hosts).

Given that `UserKnownHostsFile=/dev/null` SSH option is usually combined
with `StrictHostKeyChecking=no`, it seems quite reasonable to bind the
activation/disactivation of both options to `host_key_checking`
provisioner attribute.

For the records, a discussion held in Ansible-Development mailing list
clearly confirmed that there is no short-term plan to adapt Ansible to
offer an extra option or change the behavior of
ANSIBLE_HOST_KEY_CHECKING. For this reason, the current implementation
seems reasonable and should be stable on the long run.

Close #3900

Related References:

- https://groups.google.com/forum/#!msg/ansible-devel/iuoZs1oImNs/6xrj5oa1CmoJ
- https://github.com/ansible/ansible/issues/9442
2014-11-30 09:55:48 +01:00
Gilles Cornu 178942cf27 provisioners/ansible: change arguments arrangement
- force `--connection=ssh` (any other modes like paramiko or smart are not
  supported)
- give the highest priority to `raw_arguments` for sake of simplicity (in
  usage, in code and in documentation)
- fix position of the `--limit` argument (the generated inventory could be
  shadowed by `raw_arguments`, while ansible.limit was able to override
  `raw_arguments`

ref #3396
2014-11-30 09:50:50 +01:00
Gilles Cornu 306c4f7eda provisioners/ansible: force --connection=ssh
When `--connection` argument is not specified, Ansible will use the
'smart' mode, which can either use `ssh` or `paramiko` transports,
depending of the version of OpenSSH available. If OpenSSH version is new
enough to support ControlPersist technology, `ssh` will be used.
See also http://docs.ansible.com/intro_configuration.html#transport.

In order to support some advanced features of Vagrant (e.g. multiple ssh
private key identities or ssh forwarding), the Ansible provisioner
already must force `ssh` connection mode.

Having to deal with the possible fallback to `paramiko` increase the
burden of special cases that Ansible provisioner must handle, without
any added value, as Vagrant is based on OpenSSH and its users are
usually using modern operating systems.

With this change, the Ansible provisioner will officially only support
`ssh`. It will still be possible to switch to another connection mode
via `raw_arguments`, but it will breach the "contract", and no
(community) support can be expected in such use case.

ref #3900, #3396
2014-11-30 09:50:50 +01:00
Gilles Cornu 1c884fa4e5 provisioners/ansible: Show Ansible command when VAGRANT_LOG=debug 2014-11-25 08:12:43 +01:00
Seth Vargo f86189a2fe Add Env.with_clean_env for resetting the Ruby and Rubygems environment 2014-11-10 12:00:23 -05:00
Seth Vargo f232dc38c9 Automatically install Chef when provisioning with Chef 2014-11-07 15:56:22 -05:00
Seth Vargo a8fa4bccc7 Add Chef::Config#install and Chef::Config#version options 2014-11-07 15:56:21 -05:00
Seth Vargo 8f35ecaa6f Extract runner-specific Chef configs into their own subclass
This separates the truly basic pieces of Chef (like install url and
log_level) from the runner pieces of Chef (like provisioning_path). This
is necessary because the Chef Apply provisioner does not actually need
most of the Chef configuration options.
2014-11-07 15:56:21 -05:00
Chris Jones b19abebdf0 Grammar fix to the network interface bridge question 2014-10-31 15:16:02 -04:00
Seth Vargo 59eb0ad2e8 Add Chef Apply provisioner 2014-10-30 15:32:15 -04:00
Seth Vargo 514101816b Fix alignment in the Chef Client config 2014-10-30 15:32:10 -04:00
Seth Vargo af9177550a Properly handle empty/nil values in Chef Solo config 2014-10-30 13:43:26 -04:00
Seth Vargo 7e71d72db8 Check for empty chef_server_url and validation_key_path 2014-10-30 13:43:25 -04:00
Seth Vargo 721edf70b9 Make Chef Zero lowercase in validation (conforms to other keys) 2014-10-30 13:43:25 -04:00
Seth Vargo 1169c80a72 Use require_relative for faster loading
require_relative is an order of magnitude faster on Windows
2014-10-30 13:43:25 -04:00
Teemu Matilainen dec5dcdda3 provisioners/chef: Add `chef_zero` provisioner
Add Chef Zero provisioner using `local_mode` configuration for
chef-solo/chef-client.
2014-10-30 13:43:24 -04:00
Adam Spiers 6af715b0db silence warnings about unescaped '-' in re char class
Eliminate warnings like this:

vagrant/plugins/hosts/linux/cap/nfs.rb:74: warning: character class has '-' without escape: /^# VAGRANT-BEGIN:( 1000)? ([\.\/A-Za-z0-9-_]+?)$/
2014-10-25 15:38:13 +01:00
Tarrant eeb11ec653 Merge branch 'master' of github.com:tarrant/vagrant 2014-10-24 13:54:16 -07:00
Tarrant 70fece7a99 Add support for DHCP on tinycore 2014-10-24 13:52:35 -07:00
Tarrant ba994baa65 Revert "guests/tinycore: error if DHCP [GH-4699]"
This reverts commit 64139f2158.
2014-10-24 13:52:06 -07:00
Mitchell Hashimoto ea983e32c8 hosts/*: NFS prune regexp matches file paths [GH-3815] 2014-10-24 12:16:53 -07:00
Mitchell Hashimoto 64139f2158 guests/tinycore: error if DHCP [GH-4699] 2014-10-24 11:24:16 -07:00
Mitchell Hashimoto 5418e6b85e guests: add remove_public_key to most guests 2014-10-24 10:05:01 -07:00
Mitchell Hashimoto 94b2a8a56b communicators/ssh: insert random key, remove insecure key 2014-10-24 09:58:18 -07:00
Mitchell Hashimoto 37a4000722 providers/virtualbox: more descriptive error if empty version [GH-4657] 2014-10-24 09:20:08 -07:00
Mitchell Hashimoto da91741b7c provisioners/shell: fix typo 2014-10-23 22:49:26 -07:00
Mitchell Hashimoto a7d3458abc provisioners/shell: retry getting SSH info a few times [GH-3924] 2014-10-23 22:48:48 -07:00
Mitchell Hashimoto cc01f01684 hosts/linux: don't use sudo to write NFS if writable [GH-2643] 2014-10-23 22:25:38 -07:00
Mitchell Hashimoto 6ea8dc8e20 core: cleaner output of what provisioner is running if named 2014-10-23 18:47:03 -07:00
Mitchell Hashimoto 97f9948fce core: provisioners are defined differently now 2014-10-23 18:40:14 -07:00
Mitchell Hashimoto aa981cf4ec hosts/bsd: only use sudo if we can't write /etc/exports [GH-2643] 2014-10-23 17:43:58 -07:00
Mitchell Hashimoto ad758bf69a core: prefer providers in the Vagrantfile [GH-3812] 2014-10-23 15:32:54 -07:00
Mitchell Hashimoto b656bf4ae5 providers/docker: build output [GH-3739] 2014-10-23 15:03:09 -07:00
Gilles Cornu 1e324093a5 provisioners/ansible: spare machine.ssh_info calls
As a result of #4670 and the safe decision to not memoize
machine.ssh_info (see 89a4a29d65 and
5036d16461), it is preferable to store the
ssh_info hashes and avoid multiple function calls when generating the
ansible inventory.
2014-10-23 22:58:01 +02:00
Mitchell Hashimoto f23c5ebc46 commands/plugin: list puts plugin namein machine readable output
[GH-4506]
2014-10-23 12:00:46 -07:00
Mitchell Hashimoto 06defb37c7 commands/up: if all machines autostart:false, start none [GH-4552] 2014-10-23 11:46:22 -07:00
Mitchell Hashimoto 37a04b4bfc provisioners/puppet: use correct error class [GH-4520] 2014-10-23 10:46:11 -07:00
Mitchell Hashimoto 4ffaaf119e providers/virtualbox: more hints when choosing interface [GH-4463] 2014-10-23 10:24:07 -07:00
Mitchell Hashimoto 9b9c24cb59 Merge pull request #4468 from SilverWyrda/arch-predictable-network-interface-names
guests/arch: Add support for predictable network interfaces names
2014-10-23 10:20:01 -07:00
Mitchell Hashimoto 26c468b5f9 Merge pull request #4469 from Gurpartap/tinycore-change_host_name-pr
change_host_name.rb for TinyCore Linux
2014-10-23 10:18:56 -07:00
Mitchell Hashimoto d04ec704c1 update CHANGELOG 2014-10-23 10:12:27 -07:00
Mitchell Hashimoto 4b4255c6d1 Merge pull request #4492 from tboerger/feature/suse-fixes
SUSE naming and capability fixes
2014-10-23 10:11:28 -07:00
Mitchell Hashimoto e30ba41104 Merge pull request #4499 from sprin/centos_7_nfs_client
Fix NFSClient plugin for Redhat / Centos 7 guests
2014-10-23 10:09:11 -07:00
Mitchell Hashimoto 4c0aa0d9cb update CHANGELOG 2014-10-23 10:04:58 -07:00
Mitchell Hashimoto fca6428ecd Merge pull request #4518 from lunetics/master
guests/freebsd: allow NFS version param
2014-10-23 10:03:41 -07:00
Mitchell Hashimoto f24af5dda4 Merge pull request #4527 from Asquera/bugfix/4465-host-not-added-to-etc-hosts
Fix #4465 update /etc/hosts on rhel 7 and derivatives (CentOS)
2014-10-23 09:57:12 -07:00
Mitchell Hashimoto d211e1c1d2 Merge pull request #4534 from matgnt/master
hosts/windows: Don't mount all drives into the RDP session
2014-10-23 09:56:11 -07:00
Mitchell Hashimoto 50b0ea8173 Merge pull request #4535 from plu/master
guests/darwin: Set ComputerName and LocalHostName on darwin guests
2014-10-23 09:55:13 -07:00
Mitchell Hashimoto 3f01a99148 provisioners/shell: rename shell_args to powershell-args 2014-10-23 09:53:14 -07:00
Mitchell Hashimoto f0a4e26d27 Merge pull request #4548 from ebelew/shellargs
Update powershell provisioning to fix #4547
2014-10-23 09:50:50 -07:00
Mitchell Hashimoto 35c9b59968 Merge pull request #4565 from dup2/patch-1
guests/ubuntu: A more reliable way to detect Ubuntu via lsb_release
2014-10-23 09:46:54 -07:00
Mitchell Hashimoto f122ed756c Merge pull request #4571 from jperville/docker-provider-allow-multiple-links-to-same-backend
providers/docker: allow multiple links to same backend (different aliases)
2014-10-23 09:45:14 -07:00
Mitchell Hashimoto abb9e5478a provisioners/docker: get GPG key via SSL [GH-4597] 2014-10-23 09:34:24 -07:00
Mitchell Hashimoto 29df3c733b Merge pull request #4596 from miguel250/patch-1
Use HTTPS to download docker's gpg key.
2014-10-23 09:32:54 -07:00
Mitchell Hashimoto a6c0989bc6 Revert "Merge pull request #4616 from crypt1d/master"
This reverts commit aec69c4627, reversing
changes made to 88754d2904.
2014-10-23 09:30:46 -07:00
Mitchell Hashimoto aec69c4627 Merge pull request #4616 from crypt1d/master
Consider the host_ip value when handling port collisions
2014-10-23 09:26:31 -07:00
Mitchell Hashimoto fb5aefe41e Merge pull request #4619 from dlundgren/master
Don't update the NFS exports file [GH-4148]
2014-10-23 09:21:20 -07:00
Mitchell Hashimoto bab9e979b7 Merge pull request #4621 from awusizok/fix/master/2905-static-solaris11-addresses
guests/solaris: Solving #2905 - Restarting Solaris 11 boxes with static ip addresses
2014-10-23 09:20:10 -07:00
Mitchell Hashimoto 4a9d99ef71 Merge pull request #4641 from dimbleby/smb_share_error
Provide output on raising LinuxMountFailed
2014-10-23 09:18:20 -07:00
Mitchell Hashimoto 381f1332c8 Merge pull request #4670 from gildegoma/dry-check-ssh-perms
Check SSH key permissions in machine.ssh_info
2014-10-23 09:14:31 -07:00
Mitchell Hashimoto 2a8f74f54a providers/virtualbox: style 2014-10-23 09:12:41 -07:00
Mitchell Hashimoto 7287604450 Merge pull request #4671 from jramnani/fix/master/nfs_exports_file_for_freebsd_guests
Fix #4658. Bad NFS exports file on OS X & BSD hosts.
2014-10-23 09:12:00 -07:00
Mitchell Hashimoto 252d12de96 Merge pull request #4675 from mwrock/smb_config
use smb configured credentials from vagrantfile if available
2014-10-23 09:09:31 -07:00
Mitchell Hashimoto 44310872f6 Merge pull request #4693 from uchagani/master
guest/windows: Rename Windows guest without reboot
2014-10-23 09:06:55 -07:00
Mitchell Hashimoto 15f16181f5 communicators/ssh: clear out some comments 2014-10-23 09:06:28 -07:00
Mitchell Hashimoto 890dc21791 Merge pull request #4696 from konstantint/patch-1
core: raise errors if bad key perms/owner [GH-2163]
2014-10-23 09:05:36 -07:00
uchagani 2d465ea923 Fixed escape character problem in registry path 2014-10-23 11:27:14 -04:00
Konstantin Tretyakov c332287665 Addresses issue #2163
In the situation where the SSH key has invalid permissions/owner, the reconnect-loop keeps failing repeatedly yet stays silent about the reasons. A message must be reported from the default exception handler (added). In addition, the situations where the SSH key owner or permissions are wrong must lead to a proper failure (added). Ideally, though, the owner/permissions check must happen before launching the VM, hence this is not a perfect fix.
2014-10-23 15:11:10 +03:00
Mikhail Zholobov 5197945e56 providers/virtualbox: Remove unused method "using_nfs?"
Related to [GH-4344]
2014-10-23 11:04:21 +04:00
uchagani 90cbdd85e1 Rename Windows guest without reboot 2014-10-23 02:27:05 -04:00
Mitchell Hashimoto d28a7806ea Merge pull request #4472 from abele/fix/master/salt-retcode-passthrough
Fix state.highstate run when using salt master
2014-10-22 22:03:46 -07:00
Mitchell Hashimoto 1e6259dd00 providers/docker: set preparing set to avoid data dir clear [GH-3873] 2014-10-22 20:52:08 -07:00
Mitchell Hashimoto 59ebef7b4b command/rsync-auto: proxy VMs work [GH-4067] 2014-10-22 16:25:59 -07:00
Mitchell Hashimoto 0e29dd5668 commands/rsync: handle proxy machines [GH-4066] 2014-10-22 16:17:39 -07:00
Mitchell Hashimoto 296d0639cc providers/docker: support auth [GH-4042] 2014-10-22 13:12:31 -07:00
Mitchell Hashimoto cff57c8d01 core: trigger machine_id_changed for reload [GH-3963] 2014-10-22 12:07:49 -07:00
Mitchell Hashimoto 1ee46d3c95 providers/docker: check proper state for docker-logs [GH-3990] 2014-10-22 11:20:00 -07:00
Mitchell Hashimoto 9c23e4d9cb providers/docker: expand vagrant_vagrantfile [GH-4000] 2014-10-22 11:02:26 -07:00
Mitchell Hashimoto 59fe62ec11 providers/docker: public_address reports host machine addr [GH-4342] 2014-10-22 10:37:32 -07:00
Mitchell Hashimoto 7988f0fb7c Fix broken unit tests 2014-10-22 09:44:48 -07:00
Mitchell Hashimoto 57a1269e35 providers/docker: read the container ID properly 2014-10-22 09:33:57 -07:00
Mitchell Hashimoto 7ccec33460 providers/virtualbox: define a sync_folders action to setup NFS
[GH-4344]
2014-10-22 09:26:38 -07:00
Mitchell Hashimoto 9d4ab18f42 providers/docker: stop_timeout [GH-4504] 2014-10-21 17:50:45 -07:00
Mitchell Hashimoto e749eaa039 providers/docker: more robustly detect built image [GH-4598] 2014-10-21 17:44:48 -07:00
Mitchell Hashimoto fb1a825c0d providers/docker: host IP and protocol is respected [GH-4505] 2014-10-21 17:17:34 -07:00
Mitchell Hashimoto 5228437b30 providers/docker: nicer error if package is called [GH-4595] 2014-10-21 17:04:46 -07:00
Mitchell Hashimoto 5ebd10c19c communicators/ssh: timeout on connection check 2014-10-21 17:00:05 -07:00
Mitchell Hashimoto 7f432422e1 providers/docker: properly copy create_args in config [GH-4526] 2014-10-21 16:39:26 -07:00
Mitchell Hashimoto 18c76f0a86 provisioners/docker: search for Docker in multiple paths [GH-4580] 2014-10-21 16:19:02 -07:00
Mitchell Hashimoto 58f7310444 providers/virtualbox: detect conflict in name [GH-4681] 2014-10-21 15:56:32 -07:00
Miguel Perez 307c670154 Use SSL to download docker gpg key.
Fixed #4569
2014-10-21 17:29:49 -04:00
Matt Wrock 461f6f1281 do not automatically add /vagrant synced folder if another folder is already assigned to current path 2014-10-20 23:13:13 -07:00
Matt Wrock 9671f00e3a use smb username and password in synced_folders config if available instead of prompting 2014-10-20 22:05:56 -07:00
Jeff Ramnani bd5fd7ab18 Fix #4658. Bad NFS exports file on OS X & BSD hosts.
For FreeBSD guests, Virtualbox can sometimes report the private network
interface IP address as "0.0.0.0".  This will cause an invalid NFS
exports file to be generated for FreeBSD and OS X hosts.

Fixed by not allowing Virtualbox to report a guest IP address of
"0.0.0.0".
2014-10-20 12:35:30 -05:00
Gilles Cornu 4e81be879c Check SSH key permissions in machine.ssh_info
With this change, any caller of machine.ssh_info is assured that best
efforts will be done to fix possible wrong permissions on the private
key files.

Fix #4652
2014-10-20 17:33:06 +02:00
Mitchell Hashimoto 34ac5f474c Merge pull request #4615 from styro/fix/master/issue-4614
provisoiners/salt: Check whether Salt bootstrap script exists before deleting it. GH-4614
2014-10-18 16:13:20 -07:00
Mitchell Hashimoto 4af0f9b9c6 whitespace 2014-10-18 16:13:01 -07:00