Commit Graph

358 Commits

Author SHA1 Message Date
Gilles Cornu 1d09fc4a79 provisioners/ansible: add new option raw_ssh_args
Since the Ansible provisioner now potentially exports ANSIBLE_SSH_ARGS
variable, it is fair to allow to extend the content of this environment
variable (`ssh_args` parameters from ansible.cfg file have lower
priority)
2014-03-09 22:47:24 +01:00
Gilles Cornu 1c0bc20d21 Ansible: Re-enable ControlPersist defaults when ANSIBLE_SSH_ARGS is used
Solve problem discussed in [GH-2952]
2014-03-09 22:41:36 +01:00
Mitchell Hashimoto fa537740c6 provisioners/shell: use detail level output for running 2014-03-08 14:43:35 -08:00
Mitchell Hashimoto 4c9e6e46b2 provisioners/salt: don't use exteranl deep_merge [GH-2348] 2014-03-07 09:18:34 -08:00
Gilles Cornu 1d328f7021 provisioners/ansible: Disable host key checking
Close #3060
2014-03-06 23:55:08 +01:00
Mitchell Hashimoto ada5e8bf7f provisioners/docker: actual auto assign name logic 2014-03-04 07:32:25 -08:00
Mitchell Hashimoto 857b989c47 provisioners/docker: setting to not auto assign name 2014-03-04 07:31:13 -08:00
Matthias Kadenbach 8f76d5e2cd added as ``args << `` 2014-03-03 16:30:42 +01:00
Matthias Kadenbach f6db54b2dc Set param -name automatically (docker run)
``-name`` ist needed for linking containers, i.e. see http://docs.docker.io/en/latest/use/working_with_links_names/#working-with-links-names
2014-03-03 14:20:33 +01:00
Gilles Cornu cf8bfb2347 Ansible: Refactor handling of SSH vars/attributes
Avoid repetitions by using (sometimes lazy loaded) instance attributes
2014-02-28 09:07:52 +01:00
Gilles Cornu db490c5da5 Ansible: force 'ssh' connection only when needed
Remain in 'smart' mode, unless Multiple SSH identities or SSH-Forwarding
are in use.
2014-02-28 09:07:51 +01:00
Bryan Hunt 9480edf05a Ansible: Support SSH-Forwarding
Credits: Problem was originally reported in
dba02f3526
by @picsolvebryan
2014-02-28 09:07:51 +01:00
Gilles Cornu ca1e30d405 Ansible: Support multiple private keys
Note that this feature requires to force `--connection=ssh`. This is not
a big deal as `paramiko` mode is deprecated and in most cases `smart`
mode enables `ssh` mode.
2014-02-28 09:07:51 +01:00
Gilles Cornu a62d28fd7f provisioners/ansible: remove an unused variable
Sorry, I missed that point in GH-2991 review.

[ci skip]
2014-02-28 09:00:05 +01:00
Mitchell Hashimoto a1b29ca82b Merge pull request #2991 from gildegoma/review-pr2926
provisioner/ansible: Ansible single inventory file
2014-02-27 11:30:12 -08:00
Mitchell Hashimoto 12c740898c provisioners/puppet: append module path (default) [GH-2677] 2014-02-24 08:09:24 -08:00
Mitchell Hashimoto 32c45aa70b Revert "Merge pull request #2677 from purpleidea/fix_puppet_apply"
This reverts commit 9ac4ec85dd, reversing
changes made to 8dbad22d72.
2014-02-24 08:07:57 -08:00
Mitchell Hashimoto 6c5179602c provisioners/salt: error if minion_config missing [GH-2893] 2014-02-24 07:58:12 -08:00
Gilles Cornu 1cd2fe56a0 ansible: generate inventory in .vagrant/... 2014-02-24 16:52:38 +01:00
Mitchell Hashimoto a667893cbf provisioners/shell: error if invalid encoding [GH-3000] 2014-02-23 21:50:53 -08:00
Mitchell Hashimoto 5ebe007ddc Merge pull request #3005 from ajw0100/fix-salt-options-error
provisioners/salt: Fix "options are only allowed before install arguments" error.
2014-02-23 21:25:42 -08:00
Teemu Matilainen 7d90191212 provisioners/chef: DRY up `environment` and `node_name` configuration 2014-02-21 23:28:46 -03:00
Teemu Matilainen 24f7d7b9eb Merge pull request #2975 from shanegibbs/chef-solo-role-path
Add support for multiple role paths in chef-solo >= 11.8.0
2014-02-21 23:58:10 -02:00
A.J. Welch 9f0efc19a9 Fix "options are only allowed before install arguments" error.
This reverts feb748f488 and 7cd7077467. `bootstrap_options` is
meant for flag options such as `-D`. This is demonstrated in the
example Vagrantfile from the original plugin:
github.com/saltstack/salty-vagrant/blob/develop/example/complete/Vagrantfile
Flag options must be appended to the options string before install
args such as `install_type` and `install_args`.
2014-02-19 20:24:05 -08:00
Teemu Matilainen eea9c07029 provisioners/chef: set `encrypted_data_bag_secret` to `nil` if it's not uploaded
/cc @shanegibbs

Fixes #2984
2014-02-16 18:14:56 -03:00
Gilles Cornu 709f3f4e6f provisioners/ansible: Change --limit behaviours
- The implicit default limit is always set
- ansible.limit as an empty string won't disable the default limit, but
  will be passed as "--limit=" argument and ansible-playbook will return
  an error (provided host list is empty)
2014-02-16 11:39:15 +01:00
Gilles Cornu c2663f5d30 provisioners/ansible: Fix Group Management
- Support arbitrary depth of "groups of groups of ... groups"
- Skip ':vars' suffix, but allow group names with ':' (yes, Ansible
  accepts this character)
- Like for groups of machines, groups of groups can result "empty", but
  it is not an issue for Ansible. Recursive filter on the group tree is
  a bit hard to implement, and don't brind real added value at Vagrant
  level.
2014-02-16 11:20:00 +01:00
Teemu Matilainen ad34d474bc provisioners/chef: DRY and unify encrypted data bag secret handling
Pull up encrypted data bag secret management into the base classes, thus
also unifying the functionality.

Especially this complements the issues:
  * Upload the secret to provisioning path also with chef-solo [GH-1246]
  * Delete the secret also with chef-client [GH-2712]
  * Remove the secret before uploading also with chef-client [GH-1111]
2014-02-15 22:46:48 -03:00
Mitchell Hashimoto 8c9fde41e9 provisioners/shell: clean up fixnum handling 2014-02-14 12:43:27 -08:00
Ryan Uber 509e29043a Added handling of fixnum values for shell provisioner options both as the value
of `args` itself and as an element inside of an `args` array. Added validation
around passing in arrays for arguments. Just knowing that it is an array is not
enough, because arrays can contain any other type.
2014-02-14 11:47:36 -08:00
Shane Gibbs 5600bd1067 Add support for multiple role paths in chef-solo 2014-02-14 21:48:18 +13:00
Mitchell Hashimoto 59d257f832 provisioners/puppet: mergeable config 2014-02-03 22:27:23 +01:00
Mitchell Hashimoto d864187b1a provisioners/docker: configuration is mergeable 2014-02-03 22:23:26 +01:00
Mitchell Hashimoto 38c2a48ff4 provisioners/docker: always pull images [GH-2901] 2014-02-03 16:26:38 +01:00
Mitchell Hashimoto 1d69e95c1c provisioners/docker: config to disablize -d flag 2014-02-03 16:14:59 +01:00
Gilles Cornu 466cf58476 ansible generated inventory: skip group variables
Except ':children' for groups of groups, it is safer to avoid generating
':suffix' blocks. At the moment Ansible only supports (but doesn't
recommend) group variables (:vars), and the Vagrant Ansible provisioner
won't support this way to define variables.
2014-02-02 23:28:04 +01:00
Gilles Cornu f564bf7410 Ansible Groups: Accept single item as String
Syntax errors in `ansible.groups` definition are not well handled:
Error returned: undefined method `each' for "machine1":String (NoMethodError)

Being tolerant here doesn't hurt and may avoid people get
confused/annoyed.
2014-02-02 23:21:06 +01:00
Gilles Cornu 84308964e2 ansible generated inventory: deal with orphan VMs
env.active_machines can potentiall return 'invalid' machines:
- Ignore machines that are not declared in current Vagrantfile
- Warn when machines are missing (it usually occurs when the VM is
  removed without `vagrant destroy` and some orphan metadata remains
  in .vagrant/machines/...)
2014-02-02 23:06:27 +01:00
Mark Aaron Shirley 3bf5032d4b Update Ansible provisioner to only create a single inventory file
The Ansible provisioner will now only create a single inventory file named,
"vagrant_ansible_inventory". All defined Vagrant machines will be added to
this inventory file. Provisioning will now include a "--limit=#{machine}"
option to scope Ansible provisioning tasks to just the current machine. Setting
the Ansible provisioner's "limit" config option will override the new default
limit. Ansible provisioning scripts will now have access to all other defined
machines and what groups they reside in.
2014-02-01 13:04:20 -08:00
Teemu Matilainen b52958bfb6 provisioners/file: expand destination path if capable 2014-02-01 01:23:09 -03:00
Mitchell Hashimoto 09955be2cd provisioners/docker: configure auto start properly for new Docker
[GH-2874]
2014-01-21 20:52:27 -08:00
Mitchell Hashimoto a19e442cf2 provisoiners/docker: only add user to group if not in it [GH-2838] 2014-01-16 10:34:08 -08:00
Mitchell Hashimoto ead1382343 provisioners/docker: fix wrong variable usage
caught by @pda
2014-01-15 17:33:55 -08:00
Mitchell Hashimoto 2ca498a5dd provisioners/docker: build images using new DSL 2014-01-14 09:22:55 -08:00
Mitchell Hashimoto b3de12702a Merge branch 'add_building_local_dockerfiles' of https://github.com/jpfuentes2/vagrant into jpfuentes2-add_building_local_dockerfiles 2014-01-14 08:17:44 -08:00
Mitchell Hashimoto 6a7e07c53f provisioners/chef: don't follow symlink when chown 2014-01-11 08:02:59 -08:00
Mitchell Hashimoto fcae8dd687 Merge pull request #2766 from graingert/patch-1
provisioners/salt: Allow defining of <install-type> and <install-type-args>
2014-01-10 15:43:25 -08:00
Teemu Matilainen 64ea647e09 provisioners/chef-solo: Fix copy&paste "Puppet" from a deprecation message 2014-01-08 13:27:35 -03:00
Thomas Grainger feb748f488 Allow defining of <install-type> and <install-type-args> 2014-01-06 12:22:43 +00:00
Mitchell Hashimoto e29bcba955 provisioners/puppet: alphabetize 2014-01-02 14:44:49 -08:00
Mitchell Hashimoto 040e1a2e0a provisioners/chef: synced_folder_type 2014-01-02 14:40:57 -08:00
Mitchell Hashimoto 1da271c536 provisioners/puppet: synced_folder_type [GH-2709] 2014-01-02 14:37:47 -08:00
Mitchell Hashimoto 7f5c85cf20 provisioners/chef-solo: delete data bag secret [GH-2712] 2013-12-31 10:44:08 -08:00
Marc Meszaros 13ff159d8c Fix salt provisioner error namespace to be more consistent with other provisioners 2013-12-27 22:38:44 -05:00
Marc Meszaros 194d7d11cd Add error messages to localization file for salt provisioner 2013-12-27 22:37:54 -05:00
Tobias Bähr 364488eba8 Set default value to avoid a prompt 2013-12-22 18:48:14 +01:00
Mitchell Hashimoto 9ac4ec85dd Merge pull request #2677 from purpleidea/fix_puppet_apply
provisioner/puppet: do not prepend default path because it can override modules.
2013-12-18 08:31:21 -08:00
James Shubin d4c76d1bcf Do not prepend default path because it can override modules.
It is common for Puppet to manage itself. If the puppet code you are
deploying pushes files to /etc/puppet/modules/, then prepending this
path can break deployment because it will override the module path if
the deployment code is changing. There is no good reason to include this
path. Puppet has built in defaults for this reason.
2013-12-17 14:29:54 -05:00
Charles Blaxland 7518bf94eb Force rm of chef config files #2669 2013-12-17 17:53:52 +11:00
Gilles Cornu e5f45e2b79 Ansible: Fix a bug in `raw_arguments` option
Without this change, it is not possible to pass more than one "raw"
argument, which was not the expected behavior. In addition to Array
format, String (for a single argument) is still accepted (for sake of
"backward compatibility" and ease of use).

Note: Due to low/expert usage of this option, I think that it is not
necessary to add more robust validation on this parameter (e.g. Array
of String type checking or argument syntax pattern matching). Use it at
your own risk ;-)
2013-12-16 21:20:10 +01:00
Gilles Cornu 213534d185 Merge pull request #2606 from maspwr/ansible-groups
Add ability to use Ansible groups in generated inventory. Fixes #2551.
2013-12-14 07:03:22 -08:00
Fabio Rehm 46ba43e6ac provisioners/docker: Display warning in case a version get specified on the Vagrantfile and the guest is a RedHat-ian guest [GH-2649] 2013-12-13 23:06:20 -02:00
Fabio Rehm 6f304d5e29 provisioners/docker: Move DockerConfigureVagrantUser capability up to Linux guests [GH-2649] 2013-12-13 23:06:20 -02:00
Fabio Rehm 5a842fc609 provisioners/docker: Check if epel-release is installed on RedHat-ian guests before attempting installation [GH-2649] 2013-12-13 23:06:20 -02:00
Naoto TAKAHASHI 746d406558 add docker for redhat 2013-12-14 02:35:34 +09:00
Teemu Matilainen d321b9199e provisioners/chef: fix node/client deletion when node_name is not set [GH-2345]
V2 config uses `hostname` instead of `host_name`.
2013-12-13 00:51:22 -03:00
Arthur Neves c57073da7b Rename docker_client and docker_installer
We can rename those classes and remove the docker_ prefix as they
already have a module namespace.
2013-12-12 14:59:03 -05:00
Jacques Fuentes 579cc8e558 Remove defunct @build_options reference 2013-12-09 18:36:57 -05:00
Jacques Fuentes 1738f9dccf Add option to Docker provisioner to build local images 2013-12-09 17:54:32 -05:00
Mark Aaron Shirley 906579d25a Add ability to use Ansible groups in generated inventory. Fixes #2551. 2013-12-08 23:08:03 -08:00
Mitchell Hashimoto 89f4e14ab3 Merge pull request #2585 from mitchellh/2585-fix-docker-image-assignment
provisioner/docker: unable to run multiple docker containers based off the same image
2013-12-06 14:56:15 -08:00
Teemu Matilainen b0919b916b Remove extraneous character
Going down? ;)
2013-12-06 18:57:27 -03:00
Mitchell Hashimoto 17b68f7d50 provisioners/puppet: use unique directory for each definition 2013-12-06 12:39:50 -08:00
Mitchell Hashimoto f8223d4704 provisioners/chef: support proper counter for multiple chefs 2013-12-06 12:26:48 -08:00
Mitchell Hashimoto 38f931ba93 provisioners/shell: array args properly work 2013-12-06 11:28:32 -08:00
Fabio Rehm 8688c6b8b2 provisioners/docker: Only assign the `image` config in case it was not specified 2013-12-05 22:12:44 -02:00
John Bellone bebaa63063 [provisioner/chef]: Update base to fix typo.
It seems this was introduced by accident with #2281.
2013-12-05 15:24:53 -05:00
Fabio Rehm 7e0b0a5a3c provisioners/docker: Extract container lookup method 2013-12-04 22:13:17 -02:00
Fabio Rehm c7a5592b96 provisioners/docker: Ensure checks for whether the container exists / is running works accross multiple Docker versions [GH-2579] 2013-12-04 22:10:39 -02:00
Mitchell Hashimoto 3df245f1fd provisioners/chef: create/chown backup folders [GH-2281] 2013-12-04 11:51:05 -08:00
Mitchell Hashimoto 146bc34019 Merge pull request #2549 from mitchellh/f-docker-provisioner
docker provisioner
2013-12-03 17:47:42 -08:00
Mitchell Hashimoto 8f4fa897d0 provisioners/docker: use proper UNSET_VALUE for no value 2013-12-03 16:19:08 -08:00
Mitchell Hashimoto 999ce22354 provisioners/docker: output version when installing 2013-12-03 14:39:32 -08:00
Mitchell Hashimoto f7916c0cff provisioners/docker: output for each image pulling 2013-12-03 14:38:38 -08:00
Mitchell Hashimoto ecbd0bfa85 provisioners/docker: style nitpicks 2013-12-03 14:36:14 -08:00
Mitchell Hashimoto 8d6cac959f provisioners/docker: only allow 'args' special 2013-12-03 14:35:56 -08:00
Mitchell Hashimoto 33d3c28086 provisioners/docker: simplify run, output which are running 2013-12-03 14:33:13 -08:00
Mitchell Hashimoto c55f7dfd64 provisioners/docker: allow images to be configured with images: 2013-12-03 14:25:20 -08:00
Mitchell Hashimoto d3b7bffc65 provisioners/docker: style nitpick on unless 2013-12-03 14:19:31 -08:00
Mitchell Hashimoto dda7cbb412 provisioners/docker: make sure version is correct type, fix Ruby warning 2013-12-03 14:18:30 -08:00
Mitchell Hashimoto 5ee3a06740 provisioners/chef: fix validate return so that it is properly formatted 2013-12-03 13:59:59 -08:00
Nicolas Delaby 7cd7077467 salt-bootstrap.sh: options are only allowed before install arguments 2013-11-29 15:52:12 +01:00
Fabio Rehm 3289141fc3 provisioners/docker: Clean up some leftovers from vocker 2013-11-29 10:22:06 -02:00
Fabio Rehm 82fc9330af provisioners/docker: Simplify raising of Docker related errors 2013-11-29 10:22:06 -02:00
Fabio Rehm 0536817e90 provisioners: Import Docker provisioner code from Vocker 2013-11-29 10:22:06 -02:00
Mitchell Hashimoto cfb258a55b provisioners/shell: s/unless/if !/ 2013-11-29 00:02:20 -08:00
Paul Hinze fef60242b0 provisioners/shell: fix validation for args [GH-1949]
The logic change in 57d4775140 introduced
a bug where neither strings nor arrays provided as `args` for shell
provisioners would pass validation.

This fixes that problem along with a few extras:

- split out arg validation into a private method
- update comment describing valid args
- add a few unit tests around config validation
2013-11-28 19:54:10 -06:00
Mitchell Hashimoto 798432febe provisioners/chef: validate environments path [GH-2381] 2013-11-26 18:57:27 -08:00
Mitchell Hashimoto 6f2d6981cb website/docs: better Chef docs [GH-2436] 2013-11-26 11:44:16 -08:00
Mitchell Hashimoto cd106986b4 provisioners/ansible: use the first private key
/cc @gildegoma - Does Ansible support multiple private keys? Vagrant
now does, so this isn't exactly safe.
2013-11-26 10:07:52 -08:00