Commit Graph

536 Commits

Author SHA1 Message Date
Gilles Cornu 3842a1f710 provisioners/ansible: provide ssh identities via ANSIBLE_SSH_ARGS (when necessary)
When provisioning multiple machines in sequence (the default vagrant
behaviour), it doesn't make sense to require to provide the private ssh
key(s) via the custom ansible inventory script/file.

To align with the handling of multiple ssh keys per machine, we won't
rely any longer on `--private-key` command line argument, but only pass
the keys via `ANSIBLE_SSH_ARGS` environment variable.

Note that when vagrant generates the ansible inventory and that only one
key is associated to a VM, this step would be redundant, and therefore
won't be applied.

This change fixes the breaking change introduced by 3d62a91.
2015-07-10 08:51:17 +02:00
Luis Pabón f0718d620d provisioners/ansible: Put ssh key in the inventory
Vagrant 1.7.1 creates and injects new ssh keys for each virtual machine.
When it started ansible with the "parallel provisioning trick",
it would only send the ssh key of the targeted virtual machine.
With this change, vagrant now stores the ssh key for each virtual
machines directly in the generated ansible inventory, and thus allow
ansible parallelism.

Note that this change is not sufficient, as it would break vagrant
configuration based on a custom inventory (file or script). This issue
will be addressed in a next commit.

Signed-off-by: Luis Pabón <lpabon@redhat.com>
2015-07-10 08:39:49 +02:00
Seth Vargo 4b1847acf3 Use Chef Client for Chef Zero
Fixes GH-5619
2015-07-09 21:23:42 -06:00
Seth Vargo 40b94afeb5 Update command builder now that provisioning_path has moved to runtime 2015-07-09 17:46:39 -06:00
Seth Vargo 60330218fb Merge pull request #5913 from mitchellh/sethvargo/windows_chef_paths
Use windows-specific Chef paths
2015-07-09 17:05:40 -06:00
Seth Vargo e9bcf147f0 Prefix with guest_ 2015-07-09 17:01:36 -06:00
Seth Vargo 0e039159a6 Calculate Chef paths at provision time 2015-07-09 16:55:55 -06:00
Nicholas Randon eb6aa2ac8c Allow Ansible provisioner to run reliably in parallel
The Ansible Vagrant provisioner has a race where the inventory file is
updated every time the provisioner runs unless a file is provided.

Therefore if Ansible attempts to provision two nodes in parallel, you
may see the following race:
   * System A writes the inventory file and calls Ansible.
   * System B starts to provision and truncates the file before
     creating a new one.
   * Ansible on system A now attempts to read the inventory
     file, which is blank. Ansible bombs out with "ERROR: provided
     hosts list is empty".

To fix this, we only allow Vagrant to update the inventory file if
it needs to.
2015-07-10 00:53:59 +02:00
Seth Vargo 742d47c4cf No longer need subprocess wrapping there :) 2015-07-09 16:06:03 -06:00
Mitchell Hashimoto d51c5fbc69 Merge pull request #5435 from juiceinc/bugfix/salt-provisioner
Update Salt provisioner to allow more flexibility in passing arguments to the bootstrap script
2015-07-09 15:02:34 -06:00
Mitchell Hashimoto 300b9c9109 provisioners/chef: don't check existing set, unique ID
[GH-5199]
2015-07-09 14:04:12 -06:00
Mitchell Hashimoto 9dd5640324 provisioners/docker: for debian, chmod the var lib docker folder 2015-07-08 12:13:25 -06:00
Gilles Cornu 839a2e6fa6 provisioners/ansible: show ansible-playbook only when the verbose option is enabled
Revert 1c884fa4e5 which introduced the
following bug:

Instead of allowing to dump the `ansible-playbook` command details when
VAGRANT_LOG=debug was defined, it was then impossible to disable this
console output when VAGRANT_LOG was undefined (in such case,
``@logger.debug? systematically returns `true`)

In order to keep things simple and focused, it is preferable to drop the
bad idea to mix Ansible verbosity and Vagrant log level.

Fix #5803
2015-07-07 22:37:06 +02:00
Mitchell Hashimoto 9c7f666e48 provisioners/docker: support restart flag [GH-4477] 2015-07-07 12:17:24 -06:00
Mitchell Hashimoto 4d2e8fd591 Merge pull request #5860 from arthurvanduynhoven/docker-provisioner-deb-fix
provisioner/docker: Docker Provisioner fails on Debian [ubuntu/trusty64]
2015-07-06 15:16:03 -06:00
Mitchell Hashimoto cc2d393611 Merge pull request #5892 from PatOShea/master
provisioner/salt: Updated version for windows and added passing in version via vagrantfile
2015-07-06 15:11:08 -06:00
Mitchell Hashimoto 2fc8d99f6d provisioners/file: validate source relative to Vagrantfile path
[GH-5252]
2015-07-06 14:22:00 -06:00
Jeff Quast 1ac3d17773 bugfix: undefined local variable or method `dir'
resolves bug introduced in 74d22069d4
2015-07-06 11:39:07 -07:00
Mitchell Hashimoto fec6ef11c8 provisioners/puppet: just quiet the NFS errors for Puppet [GH-5456] 2015-07-06 11:19:32 -06:00
Mitchell Hashimoto e64cef9d31 provisioners/chef: fix crash if run list is somehow nil [GH-5545] 2015-07-05 17:30:29 -07:00
Pat O'Shea eab702da83 Adding config to set version to install 2015-07-04 01:25:31 -06:00
arthurvanduynhoven 94549ab755 Need to do update before installing linux-image-extra kernel in case system is outdated. 2015-06-24 14:56:28 +02:00
Seth Vargo b92d4b21a1 Add UI::Interface#color? 2015-06-01 11:49:09 -04:00
Tim O'Guin 72e63767ac Salt Provisioner: refactor custom install_type option to add install_command instead 2015-06-01 10:37:41 -05:00
Tim O'Guin 0b24866537 merged in master and resolved conflict in Salt provisioner docs 2015-06-01 10:07:28 -05:00
Gilles Cornu f7894d9c8c provisioners/ansible: fix broken colorized output
After #5532 (e745436df3), it was no longer
possible to enable ansible colorized output. Even though
`ANSIBLE_NOCOLOR` has no effect *at the moment* in vagrant+ansible
integration, I agree to keep it for clarity and consistence.

The new `--no-color` behaviour (bug fix #5531) is now covered by a unit
test.

//cc @marsam, @sethvargo
2015-06-01 08:36:09 +02:00
Seth Vargo 3017243a24 Merge pull request #5577 from luciddg/fix/master/docker-provisioner-restart-fix
Use service command to restart docker, not upstart.
2015-05-31 20:44:48 -07:00
Seth Vargo 6a48af6350 Merge pull request #5532 from marsam/fix/master/ansible-no-color
Disable color if in ansible provisioner if Vagrant has no color
2015-05-31 20:34:06 -07:00
Seth Vargo f5c77765fa Merge pull request #5437 from Jamezz/master
Fix issue #4152: Salt minion bootstrapping
2015-05-31 20:08:32 -07:00
Seth Vargo b90807648b Style fixes 2015-05-31 10:19:03 -07:00
Seth Vargo e34308ec12 Merge pull request #4371 from andrewmains12/salt_orchestrations
Added ability to run salt orchestrations to Salt provisioner
2015-05-31 10:17:54 -07:00
Seth Vargo 01ce48ea9e Merge pull request #5669 from taliesins/ChefProviderWindowsSupport
Use powershell syntax for Chef provisioner when using windows guest
2015-05-30 21:31:43 -07:00
John Cooper 7f716f4b63 Added synced_folder_args to puppet provisioner 2015-05-30 21:26:05 -07:00
Seth Vargo 042928db9f Merge pull request #5601 from benh57/environments_wip
Puppet 4 and Puppet environments support
2015-05-30 21:04:48 -07:00
Seth Vargo 50c0c487fb Style cleanup for new name option 2015-05-30 20:57:49 -07:00
Seth Vargo afc02ed681 Merge pull request #5607 from purpleidea/feat/named-shell
Add :name attribute to shell provisioner.
2015-05-30 20:54:34 -07:00
Seth Vargo 464e3f5bec Merge pull request #5749 from jeremyplichta/patch-1
change to https in sources.list.d
2015-05-30 11:59:05 -07:00
Seth Vargo dadee77730 Merge pull request #5637 from paul-krohn/config-not-found-error
Provide path to missing file.
2015-05-30 11:55:25 -07:00
David Cournapeau 3528af2db9 ENH: simpler masterless configuration. 2015-05-30 11:42:15 -07:00
Seth Vargo 0b85e04399 Minor style fixes for salt config_dir 2015-05-30 11:39:24 -07:00
David Cournapeau 74d22069d4 BUG: naive attempt at fixing #2970. 2015-05-30 11:39:23 -07:00
Jeremy Plichta db1bd8d8c1 change to https in sources.list.d
I started having this problem when running the docker provisioner (Vagrant 1.7.2):
Err http://get.docker.io docker/main amd64 Packages
  Undetermined Error
Err http://get.docker.io docker/main i386 Packages
  Undetermined Error
Ign http://get.docker.io docker/main Translation-en_US
Ign http://get.docker.io docker/main Translation-en


Stderr from the command:

stdin: is not a tty
W: Failed to fetch http://get.docker.io/ubuntu/dists/docker/main/binary-amd64/Packages  Undetermined Error

W: Failed to fetch http://get.docker.io/ubuntu/dists/docker/main/binary-i386/Packages  Undetermined Error

Changing this to https seemed to fix the problem for now.
2015-05-22 15:18:11 -06:00
Taliesin Sisson 9233e22974 Use powershell syntax for Chef provisioner when using windows 2015-05-02 16:21:32 +01:00
Ben Hines 9bbfbef977 Be a bit more robust when parsing environment.conf 2015-04-27 23:09:07 -07:00
Paul Krohn c7f32e6159 When you can't find the salt minion or master config, say what you were looking for. 2015-04-26 11:34:34 -07:00
James Shubin b16b85aa7d Add :name attribute to shell provisioner.
This allows the display of friendly output to the user when we think an
important action should be labeled a certain way. This makes vagrant
output a lot more useful when many inline shell provisioners are
present.
2015-04-18 00:35:21 -04:00
Ben Hines 602227ca7d Remove debug spam from development. 2015-04-16 00:50:53 -07:00
Shawn Neal 9de3c481de Salt bootstrap ps1 should be idempotent
- WinRM communicator error detection was tightened up thus exposing an issue in the salt bootstrap script creating directories that already exist.
2015-04-14 05:57:16 -07:00
Ben Hines ffcb58bcd9 When using environments, allow specifying the 'main manifest' using manifest_path and manifest_file. 2015-04-12 12:31:31 -07:00
Ben Hines 0efb9a3932 Fix resolution of puppet path for <4.0 2015-04-12 12:29:50 -07:00