Commit graph

350 commits

Author SHA1 Message Date
Serge van Ginderachter
f8ea93c732 Move inventory.set_playbook_basedir from ansible-playbook to playbook constructor 2014-03-25 22:12:01 +01:00
Serge van Ginderachter
f6a55a3552 Refactor vars_plugins (host/group_vars)
Split out parsing of vars files to per host and per group
parsing, instead of reparsing all groups for each host. This enhances
performance.

Extend vars_plugins' API with two new methods:
* get host variables: only parses host_vars
* get group variables: only parses group_vars for specific group
The initial run method is still used for backward compatibility.

Parse all vars_plugins at inventory initialisation, instead of
per host when touched first by runner. Here we can also loop through
all groups once easily, then parse them.
This also centralizes all parsing in the inventory constructor.

	modified:   bin/ansible
	modified:   bin/ansible-playbook
	modified:   lib/ansible/inventory/__init__.py
	modified:   lib/ansible/inventory/vars_plugins/group_vars.py
2014-03-25 22:12:01 +01:00
jctanner
adbd6865da Merge pull request #6681 from zytek/devel
Properly revert changes introduced in #6579
2014-03-25 13:52:34 -04:00
Jakub Paweł Głazik
6b53ac8a9a strip() vault password file 2014-03-25 16:10:33 +01:00
Jakub Paweł Głazik
08ba18668b Strip() vault password file 2014-03-25 16:10:04 +01:00
James Tanner
9169a11088 Fixes #4777 add --force-handlers option to run handlers even if tasks fail 2014-03-24 10:28:48 -04:00
James Tanner
8c2e1e2baa Addresses #6579 Disallow vault passwords with newline characters by stripping them in utils 2014-03-19 15:56:14 -04:00
James Tanner
409044155d Fixes #6579 allow for vault passwords ending with newline chars
Also add a unit test for vaulteditor to verify 1.0 passwords with newline chars.
2014-03-19 14:38:11 -04:00
Thomas Omans
1727fddf50 Allow vault encrypted vars as extra_vars
Forward the vault_password to the yaml file utility.
2014-03-19 10:09:41 -07:00
Michael DeHaan
8eb547edaa Merge pull request #6531 from bob-smith/formatting
Add space after full stop in ansible-galaxy help
2014-03-17 16:37:02 -04:00
James Tanner
c09e46517e Merge pull request #5864 from stevetjoa/ansible
adding -K flag for ask-sudo-pass to ansible-pull
2014-03-17 15:15:25 -04:00
James Tanner
70f4e0807c Fixes #6467 ansible command should not assume sudo if ask_sudo_pass or sudo_user 2014-03-17 15:03:05 -04:00
John Barker
aa87afaa87 Add space after full stop in ansible-galaxy help 2014-03-17 18:52:44 +00:00
Michael DeHaan
71977bfe71 Merge pull request #5720 from mschurenko/devel
added random sleep option to ansible-pull
2014-03-16 15:41:17 -05:00
Michael DeHaan
0ab6586222 Merge pull request #5890 from ingmar/ansiblepull-extravars-5707
ansible-pull support for -e (--extra-vars) option (same as ansible-playbook) #5707
2014-03-16 15:33:58 -05:00
Michael DeHaan
887cb7652a Merge pull request #6004 from res0nat0r/fix_ansible-doc_snippets
Fix ansible-doc option output.
2014-03-16 15:23:29 -05:00
Michael DeHaan
0dde3b7080 Merge pull request #5895 from trbs/listtasks_honors_limit
make --list-tasks honor --limit
2014-03-16 13:40:13 -05:00
Cristian Ciupitu
0749112286 Micro-optimization: replace s.find(x)!=-1 with x in s
timeit shows a speedup of ~3x on Python 2.7.5 x86_64.
It also makes the code a bit shorter.
2014-03-16 13:10:28 -04:00
Toshio Kuratomi
0fefab6651 Require a recent enough version of pycrypto and see that playbook and vault ues it. 2014-03-14 11:55:06 -07:00
James Tanner
0d6f6ad282 Implement new default cipher class AES256 2014-03-10 16:15:44 -05:00
Francesc Esplugas
0fd5829f10 get rid of newline chars when reading password file 2014-03-02 12:41:07 +01:00
James Tanner
e3672dded0 Remove breakpoint 2014-02-26 14:53:36 -05:00
James Tanner
b74105c689 Add --vault-password-file to bin/ansible-pull 2014-02-26 14:52:57 -05:00
James Tanner
35def422a3 Addresses #6188 Add --vault-password-file to bin/ansible and bin/ansible-playbook 2014-02-26 11:01:03 -05:00
James Tanner
7acd2f3a2d Addresses #6188 Add --vault-password-file option to the ansible-vault command 2014-02-26 10:01:59 -05:00
James Tanner
52a8efefba Vault rewrite, pass 1 2014-02-24 13:09:36 -05:00
James Tanner
7fe3db408d Fixes #6082 Set vault password to None by default 2014-02-19 21:26:12 -05:00
James Tanner
9ba053c885 Fix ansible cli to use vault for group var files 2014-02-19 11:23:46 -05:00
James Tanner
aa46ab1d86 Fix function name 2014-02-19 11:05:08 -05:00
James Tanner
427b8dc78d Ansible vault: a framework for encrypting any playbook or var file. 2014-02-18 15:35:12 -05:00
James Cammarata
52c9c1dc39 Fixing usage string in ansible-galaxy install for role files 2014-02-15 09:57:52 -06:00
Stefhen Hovland
e1b7278265 Only display equals sign in summary for required options. 2014-02-14 00:12:29 -05:00
Stefhen Hovland
30cabddf76 Ensure option output is sorted. 2014-02-14 00:11:21 -05:00
trbs
b7df767065 make --list-tasks honor --limit 2014-02-06 15:49:06 +01:00
Ingmar Hupp
1f0cdc5ec8 ansible-pull support for -e (--extra-vars) option (same as ansible-playbook) #5707 2014-02-05 18:53:37 +00:00
Steve Tjoa
335bc1ee5c adding -K flag for ask-sudo-pass to ansible-pull 2014-02-03 12:20:04 -08:00
Michael DeHaan
3b8fd62ff9 More site rename things. 2014-01-28 20:29:42 -05:00
Michael DeHaan
d07a3b5e9b AnsibleWorks -> Ansible 2014-01-28 20:29:42 -05:00
James Cammarata
fc30467593 Adding an "Example Playbook" section to the README template for ansible-galaxy
Fixes 5397
2014-01-24 15:39:30 -06:00
James Cammarata
593098108e Adding suggested licenses to the ansible-galaxy meta template 2014-01-24 15:34:01 -06:00
Matt
1ef8f279b9 added random sleep option to ansible-pull 2014-01-22 00:01:51 -08:00
Paul Durivage
f72f5a20df Revert "Revert "Merge pull request #5325 from angstwad/add-su-support""
This reverts commit c17d0e0357.

Conflicts:
	lib/ansible/runner/connection_plugins/paramiko_ssh.py
2014-01-20 19:19:03 -06:00
James Tanner
c17d0e0357 Revert "Merge pull request #5325 from angstwad/add-su-support"
This reverts commit 6f4bfa2cff, reversing
changes made to c91ba3a7c7.
2014-01-20 16:10:11 -05:00
Paul Durivage
c95be4ceaa Make sudo and su command line arguments mutually exclusive 2014-01-20 11:25:10 -06:00
Paul Durivage
4088243deb Proposing fix for Issue #4324; adding support for su in connection plugins ssh, ssh_alt
Fixes for ssh_alt support, adding in references to in_data where appropriate
2014-01-20 11:25:10 -06:00
jctanner
1d9e78f2ab Merge pull request #5376 from bob-smith/galaxyhelp
Display context appropriate help and inform the user they can do '--help <command>'
2014-01-14 08:37:42 -08:00
James Tanner
78ec7c736f Fixes #3973 Second Revision of live ansible-pull output 2014-01-10 11:18:02 -05:00
James Cammarata
ccbc99fe4f Fixed splitting of role/user name when username has a '.' in it
This may still be an issue if users create roles with a '.' in the name though.
We will probably have to disallow that in the role naming convention.
2014-01-06 10:42:41 -05:00
Michael DeHaan
81bc44ccc2 Don't show tracebacks on Control-C. 2013-12-26 11:41:05 -05:00
Joshua Lund
ed39bebaa8 Fixing a small typo in the Galaxy README template 2013-12-24 16:05:39 -07:00
John Barker
d607f2ccf5 Add some blank lines in help to add readability 2013-12-20 21:08:14 +00:00
John Barker
ed858f9f72 Display context appropriate help and inform the user they can do '--help
<command>
2013-12-20 20:27:24 +00:00
James Tanner
43a1e503c3 Set default role license to BSD 2013-12-20 13:14:14 -05:00
James Tanner
c37fa5ddce Use os.pathsep to split roles_path instead of a colon 2013-12-20 12:13:22 -05:00
James Tanner
82d145534c Split roles_path on colon separators and use the first path for the installation path 2013-12-20 11:43:38 -05:00
James Tanner
904ba869cc Create a default README.md with ansible-galaxy init 2013-12-20 11:29:08 -05:00
James Cammarata
0d4294da42 Don't create main.yml in files/templates directories on galaxy init 2013-12-20 09:26:42 -06:00
James Tanner
a14d1ca485 Addresses #5364 urllib quote role names 2013-12-20 09:55:53 -05:00
kiri
a97e60c63f add var for format. 2013-12-20 05:31:58 +09:00
James Cammarata
afa8f36f6b Default deps list in ansible-galaxy template to an empty list 2013-12-19 13:21:04 -06:00
Matt Martz
301ebf8d04 Don't place (or higher) in the min_ansible_version 2013-12-19 12:58:07 -06:00
James Tanner
c0aa02144f Addresses #5341 expand home directories for role_path in ansible.cfg 2013-12-18 23:22:44 -05:00
James Tanner
5d022182fe Fixes #5341 Use constants.py to set the roles directory 2013-12-18 22:40:58 -05:00
James Tanner
4a20055a59 Add the ansible-galaxy command 2013-12-18 20:15:37 -05:00
jctanner
6d80c50faf Merge pull request #4817 from j2sol/zero-exit
Exit 0 with no matched hosts
2013-12-02 10:04:18 -08:00
jctanner
189ec15bd5 Merge pull request #4706 from mvo5/bugfix/more-syntax-check
load tasks/vars includes in syntax-check mode as well
2013-11-14 09:46:54 -08:00
jctanner
2d9087b806 Merge pull request #4484 from mscherer/add_short_hostname
ansible-pull by default will look for local.yml and $fqdn.yml.
2013-11-14 05:32:47 -08:00
James Tanner
91e5569324 Merge pull request #4466 from sfromm/ansible
Add pager support to ansible-doc
2013-11-13 20:32:20 -05:00
jctanner
e08f685507 Merge pull request #3937 from masahide/devel
Supports to the playbook of Process Substitution
2013-11-07 14:50:23 -08:00
Jesse Keating
46554bbc30 Exit 0 with no matched hosts
And also print to stdout not err

This lines up with how ansible-playbook will exit. 0 in the case of no
matched hosts. This makes it easier to script ansible commands w/
variable iventory input which may or may not have an entry for the
specific ansible task being scripted. No matched hosts is acceptable,
but matched hosts w/ failures is not.
2013-11-06 08:08:21 -08:00
Michael Vogt
0b82722484 load tasks/vars includes in syntax-check mode as well 2013-10-28 13:48:50 +01:00
Michael Scherer
f8b23e5721 add a default value for the -d option of ansible-pull
Thi permit to simplify the command line to use by using
a sensible default, and so reduce the number of incorrect
possible choices and setup needed. Among potential
incorrect choices is using a fixed directory in /tmp, which
could be problematic with a setup whose access is not
properly restricted.
2013-10-18 02:05:41 +02:00
Stoned Elipot
c7217a8f1b Fix 'ansible-doc -l' runtime error following commit 4430d0f
skip "module" not found as plugin, id est directory
2013-10-16 21:58:54 +02:00
Michael Scherer
92147aff0f also fix the doc, forgot in last commit 2013-10-13 15:34:56 +02:00
Michael Scherer
4b067fa47e ansible-pull by default will look for local.yml and $fqdn.yml.
For a small network ( home, small company ), having to put the FQDN
in each file is a bit tedious, so this patch also add the shorthostname
as a 3rd default if the fqdn is not found.
2013-10-13 15:34:43 +02:00
Stephen Fromm
79d6d344d8 Add pager support to ansible-doc
If PAGER is set, or the executable less is present, ansible-doc will use
it to pipe information into so that it can be scrolled through.
If the environment variable LESS is not set, this will set it to FRSX.
2013-10-11 10:21:29 -07:00
James Cammarata
51638df48f Minor format fix in ansible-pull related to the -f patch 2013-09-20 22:08:08 -05:00
James Cammarata
97e3e967a7 Merge branch 'devel' of https://github.com/jflorian/ansible into jflorian-devel 2013-09-20 22:01:50 -05:00
Alan Descoins
ebd8e262d3 Fixed -e "" on ansible-playbook. 2013-09-07 00:28:39 -03:00
John Florian
c8a5aabf39 Added -f/--force option to ansible-pull 2013-09-03 16:39:19 -04:00
YAMASAKI Masahide
ac3f05c720 Take out the spaces inside the parenthesis. 2013-08-25 05:56:57 +09:00
YAMASAKI Masahide
7f9313b2b1 Supports to the playbook of Process Substitution 2013-08-24 17:27:30 +09:00
James Cammarata
d9be910e6e Merge branch 'exit-3-on-dark' of https://github.com/j2sol/ansible into j2sol-exit-3-on-dark 2013-08-22 22:03:34 -05:00
Alek Storm
8c9f84f6f8 Parse --extra-vars as YAML (which includes JSON) 2013-08-22 16:43:15 -07:00
Alek Storm
21d2069a74 Support multiple --extra-vars flags 2013-08-22 00:01:52 -05:00
Stephen Fromm
cc3651592b Extend ansible-pull to support other source repositories
This extends ansible-pull so that it can support using other
source_control modules for checking out a playbook repository
(issue #3372).  This will check to see if the module exists before
it attempts to do the checkout and will exit if the module is not found.
It requires that the module used to check out the repository support the
parameters 'name' and 'version'.  The option -C, --checkout is now
optional and defaults to the module's default behavior for selecting a
branch, tag, or commit value.  For git, this continues to be HEAD.

Other changes include:
* Remove git from help and use generic term(s) where needed.
* Use SortedOptParser from ansible.utils
* More abstraction of common options used between ansible and
  ansible-playbook.
2013-08-20 13:43:26 -05:00
Jesse Keating
2b96c347dc Exit with status 3 if no failures but unreachable.
Provide hints to playbook callers that a playbook execution had
unreachable vs failures. 2 == failures, 3 == no failures, but
unreachable hosts. 0 continues to be all good.
2013-08-14 13:37:26 -07:00
Michael DeHaan
0988a86653 Misc style fixes. 2013-08-10 17:59:05 -04:00
Andy R
5a47953e7d Never ask for SSH password when using local connection.
With the command line option "-c local", ansible and ansible-playbook
should never ask for a SSH password even if this is set in the config.

Fixes #3720
2013-08-07 08:05:59 -04:00
Alan Descoins
c19c2c7295 ansible-playbook can load extra vars from a file, with "@" syntax 2013-07-23 19:39:39 -03:00
Michael DeHaan
d8e5fc9d1b Remove task count information from task list. 2013-07-21 09:50:14 -04:00
Alan Descoins
04349ec362 Added --skip-tags option to ansible-playbook. 2013-07-16 19:43:58 -03:00
Matt Lesko
b37ecb055c set checkout destination directory to be full path
we chdir into this path and read the playbook/inventory if a
non-absolute path is given on the command line, that will fail
2013-07-05 17:57:01 +00:00
Michael DeHaan
506178542d Merge pull request #3303 from markmandel/feature/sudo_pass
Don't turn on sudo for all tasks when setting the sudo_user or ask_sudo_pass
2013-06-30 16:35:20 -07:00
Michael DeHaan
c2988dfdb0 Merge branch 'option-updates' of git://github.com/jlund/ansible into devel
Conflicts:
	bin/ansible-pull
2013-06-30 19:31:37 -04:00
Stavros Korokithakis
53207ddbdf Add --only-if-changed option. 2013-07-01 00:20:58 +03:00
Joshua Lund
dc984d94ac Updates to Ansible command options
* Moved the --list-hosts option that is common to both `ansible` and
  `ansible-playbook` into utils/__init__.py (corrects a FIXME)
* Wrote new help text for the --list-hosts option that makes sense
  for both of the commands that it applies to
* Changed the usage argument in `ansible-playbook` so that it is
  setup in the base_parser method the same way that it is in
  the `ansible` executable
* Updated the help text for several options to correct typos,
  clarify meaning, improve readability, or fix grammatical errors.
  In the case of `ansible-pull`, I changed the help text so that
  it adheres to the same standards as the other executables.
2013-06-26 19:57:31 -06:00
Mark Mandel
73dda68e18 Don't turn on sudo for all tasks when setting the sudo_user or ask_sudo_pass, 2013-06-21 23:20:12 +10:00
Stephen Fromm
355ab6983c remove errant and unneeded import of ansible.constants 2013-06-01 21:47:38 -07:00
Stephen Fromm
291fb9e944 Help ansible-pull work better in bootstap environment
Add option to specify inventory.  No default is defined since
ansible-playbook already does this and it allows an ansible.cfg in the
git repository to take precedence.
Overall, this should help ansible-pull work with less setup in advance,
which should be helpful in kickstart scenarios.  Much of this was
discussed in issue #2464.
2013-06-01 21:44:52 -07:00