Commit Graph

527 Commits (9985b8a9756c570811d0f221bc11ffc9354f291f)

Author SHA1 Message Date
Brian Coca d0a22a7b45 made cli code more flexible to add new command line programs w/o need for updating bin/ansible 9 years ago
Brian Coca 56a2412dc2 now correctly traps unimplemented symlinks as subprograms 9 years ago
Toshio Kuratomi 7c10c16251 Revert "capture some install issues and give out a slightly nicer error"
This reverts commit e6b1dc45e1.

This is not ready yet and it's causing failures in some environments
(travis)
9 years ago
Brian Coca e6b1dc45e1 capture some install issues and give out a slightly nicer error 9 years ago
Toshio Kuratomi f34b55ac2b Add python3-compat boilerplate to all .py files in lib/ansible 9 years ago
James Cammarata de792ba3c2 Improve handling of unicode errors
Fixes #12669
9 years ago
Brian Coca a5e6845c8b Revert "Allow exceptions to pass through the program"
breaks handling constants.py errors gracefully

This reverts commit 59f96d713e.
9 years ago
Will Thames 59f96d713e Allow exceptions to pass through the program
This is useful when using `ipython --pdb -- $(which ansible-playbook)
...` for debugging.

Also show traceback when `ANSIBLE_DEBUG` is on
9 years ago
Brian Coca e49575ff56 added wrap_text to 'last resort' as it fails if there is an error in callbacks 9 years ago
James Cammarata 469aa0c26a Don't wrap text on most errors 9 years ago
James Cammarata 6d50a261c5 Allow full exception tracebacks to be displayed with increased verbosity 10 years ago
Marc Abramowitz 314bae2a9e Don't wrap text for AnsibleParserError
This allows not messing up the wonderful error reporting that is
carefully created. Instead of:

    $ ansible-playbook foo.yml
     [ERROR]: ERROR! 'foo' is not a valid attribute for a Task  The error appears
    to have been in '/Users/marca/dev/git-repos/ansible/foo.yml': line 4, column 7,
    but may be elsewhere in the file depending on the exact syntax problem.  The
    offending line appears to be:    tasks:     - name: do something       ^ here

we get:

    $ ansible-playbook foo.yml
    ERROR! 'foo' is not a valid attribute for a Task

    The error appears to have been in '/Users/marca/dev/git-repos/ansible/foo.yml': line 4, column 7, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

      tasks:
        - name: do something
          ^ here

which is much nicer.
10 years ago
Brian Coca f42b6237d9 now has display of last resort
moved all display/color/err to use display.error
now also capture generic exceptions if they happen (never should!)
10 years ago
Brian Coca 6a75125f32 now traps exceptions on display instantiation 10 years ago
Brian Coca fdeca37257 switched to argv[0] from __file__ as it is what we actually wanted 10 years ago
Brian Coca b85ce38834 slight changes to error handling to align with v1 10 years ago
James Cammarata ce3ef7f4c1 Making the switch to v2 10 years ago
Jesse Rusak 652cd6cd5e Fix --force-handlers, and allow it in plays and ansible.cfg
The --force-handlers command line argument was not correctly running
handlers on hosts which had tasks that later failed. This corrects that,
and also allows you to specify force_handlers in ansible.cfg or in a
play.
10 years ago
James Cammarata 317728f649 Allow ansible-galaxy to install symlinks 10 years ago
Steve Gargan 4ce791fe84 avoid path issues by determining the path of ansible-pull and using its path to run ansible and ansible-playbook 10 years ago
Brian Coca 1fd0a78b0e fix issue with ask pass signature 10 years ago
Brian Coca 5f6db0e164 preliminary privlege escalation unification + pbrun
- become constants inherit existing sudo/su ones
- become command line options, marked sudo/su as deprecated and moved sudo/su passwords to runas group
- changed method signatures as privlege escalation is collapsed to become
- added tests for su and become, diabled su for lack of support in local.py
- updated playbook,play and task objects to become
- added become to runner
- added whoami test for become/sudo/su
- added home override dir for plugins
- removed useless method from ask pass
- forced become pass to always be string also uses to_bytes
- fixed fakerunner for tests
- corrected reference in synchronize action plugin
- added pfexec (needs testing)
- removed unused sudo/su in runner init
- removed deprecated info
- updated pe tests to allow to run under sudo and not need root
- normalized become options into a funciton to avoid duplication and inconsistencies
- pushed suppored list to connection classs property
- updated all connection plugins to latest 'become' pe

- includes fixes from feedback (including typos)
- added draft docs
- stub of become_exe, leaving for future v2 fixes
10 years ago
Brian Coca 8267bb2ae1 added list-tags option and also show tags in list-tasks option 10 years ago
Brian Coca 4805fa6b0b fix ansible-doc listing with new docstring
fixes #10295
10 years ago
Brian Coca 9f83af51b7 Merge pull request #9129 from lotia/devel
Clean up template comment text in ansible-galaxy
10 years ago
Brian Coca c81d981164 Merge pull request #10183 from bcoca/tag_control
adds complex tag management
10 years ago
Brian Coca 1e818f9c50 ansible-doc now shows return value docs 10 years ago
Brian Coca 65c08d1364 added tests
refactored task selection into method
list-tasks now uses common method of task selection
always is now skippable if specified in --skip-tags
10 years ago
Matt Martz 68358e31fb Allow ansible (ad-hoc) to support --extra-vars also 10 years ago
Monty Taylor 38e81083cd Add issue_tracker_url to the galaxy template
There is an optional issue_tracker_url setting that can be set in
meta/main.yml:galaxy_info. Include it in the generated template
commented out so that it can be filled out if desired.
10 years ago
Brian Coca 76a5dd7f62 Merge pull request #10189 from boxofrad/devel
Ignore errors from `shutil.rmtree` when removing temporary directory
10 years ago
Brian Coca f384e0d8d3 Merge pull request #10174 from dago/solaris
Use termios instead of stty for compatibility
10 years ago
Daniel Upton 78fb13657a Ignore errors from `shutil.rmtree` when removing temporary directory 10 years ago
Dagobert Michelsen 84718156e3 Use termios instead of stty for compatibility 10 years ago
Toshio Kuratomi 5b279c1c15 Fix for v1 handling of unicode extra-vars 10 years ago
Max Riveiro 9e8dae7498
Fix #6346. Add key_file and accept_hostkey to ansible-pull
Signed-off-by: Max Riveiro <kavu13@gmail.com>
10 years ago
Brian Coca 540d13cf52 Merge pull request #9404 from mmoya/configure-retry-files
Configure retry file usage and location
10 years ago
Sören Tempel 773849d421 Only write actual errors to stderr 10 years ago
rpe-github 3e7bb0c081 ignore VERSION file in ansible-doc 10 years ago
Toshio Kuratomi 2e0472e03b Allow ansible-playbook to determine if an invalid limit is specified 10 years ago
Jacopo 8dcffaf56f Converted empty inventory error to warning 10 years ago
Jacopo e1f2cb1d37 Removed early check for empty inventory 10 years ago
Toshio Kuratomi f998e65701 Merge pull request #9809 from mscherer/fix_9695
Make sure ansible-doc work when stdin is not a tty
10 years ago
Toshio Kuratomi fbadcfd44f Fix for not all platforms having optional libraries at the proper versions. 10 years ago
Brian Coca 88443d6dcf Merge pull request #7306 from abadger/feature/egg-info
Feature/egg info
10 years ago
Michael Scherer caefc20f16 Use --version to see if less can be executed
(less) 2> /dev/null would fail if stdin is /dev/null.
Sinceless --version do not read anything from stdin,
it is perfect for seeing if the software exist or not.

Also replace the whole os system detection by directly
using subprocess ( as we use it elsewhere, we already
depend on it ).
10 years ago
Michael Scherer f7ac012301 Do not assume that stdin is a tty
This can be used from another non interactive software, see #9695
for details.
10 years ago
Brian Coca 0ba2298fdd used del instead of pop, removed unused pprint import
Conflicts:
	lib/ansible/modules/core
	lib/ansible/modules/extras
10 years ago
Brian Coca 8250dba0f1 Merge pull request #9534 from mmicael1/devel
Add tags options [to ansible pull - ed]
10 years ago
Brian Coca 40caa11082 implemented info action for galaxy 10 years ago
mmicael1 a33dccfa61 Add tags options
Add -t OR --tags options to pass to ansible-playbook
10 years ago
Brian Coca 7a5e7db2df ansible doc now finds modules recursively
more intelligent about ignoring files that are clearly not modules
10 years ago
Brian Coca 0317e7b910 avoid modifying module var by just passing the substring to the append 10 years ago
Brian Coca 94a732fb1a fixed typo in comments 10 years ago
Brian Coca 0fb0548d0b removed no unused var that was not cleaned up properlly 10 years ago
Brian Coca e41bcc41d3 removed 'column display' options as there is no code handling this
function
10 years ago
Brian Coca 1b70ef6cba Several changes to ansible-doc
added display of deprecated to ansible-doc
now it does better job of using tty columns
fixed indication truncation of desc with trailing ...
removed extension from module list, also fixed matching exlusion
blacklist
10 years ago
Brian Coca b3b356480d added the ability to keep aliased and deprecated modules prefixed with
'_', they will be loaded after non prefixed modules are checked they can
be full modules or symlinks to existing ones (alias)

also updated ansible doc to ignore these, will eventually add selective
display
10 years ago
Ton Kersten 39bbe36fc7 Ignore compiled Python for documentation.
When running `ansible-doc --list` a lot of errors are
generated when `ansible-doc` tries to find documentation
strings in `.pyc` files.
10 years ago
Maykel Moya c15b47fb7b Configure retry file usage and location
Adds new settings for managing retry files:
* retry_files_enabled, defaults to True
* retry_files_save_path, defaults to ~/.ansible-retry

This change was adapted from PR #5515.
10 years ago
Pete Smith 0953322b23 Remove no-op string declaration 10 years ago
Toshio Kuratomi e91e30cd5e Fix unspecified role versions.
Fixes #9236
10 years ago
Ali Asad Lotia 9083643a7e Clean up template comment text in ansible-galaxy
Since support for non-galaxy templates is available in 1.8, the existing
comment in the default_meta_template requiring specified dependencies be
available via galaxy was no longer valid. That comment is now removed.
10 years ago
James Cammarata 889dfc4374 Merge pull request #8959 from willthames/galaxy_ssh_clone
Allow fairly common ssh repo clone path to work
10 years ago
James Cammarata b7a74e216f Merge pull request #8948 from sergevanginderachter/issue_8823
ansible-galaxy: exit with rc 1 if role doesn't exist/is not found
10 years ago
James Cammarata bc583dabbc Removing reference to ansible-pull in bin/ansible-vault 10 years ago
Toshio Kuratomi c6b26ff7c7 Remove duplicate call to remove tmp role file 10 years ago
Michael Scherer b9acaccc1d Do not remove local role file if given on the commandline
using this (for testing purpose) :
  $ ansible-galaxy install COPYING
  - error: the file downloaded was not a tar.gz
  - COPYING was NOT installed successfully.
  - you can use --ignore-errors to skip failed roles.

this result in COPYING being erased, which is surprising for the user.
This also prevent erasing requirements.yml if someone use the wrong flag.
10 years ago
Will Thames 537472f42c Make ansible-galaxy work as expected
This change fixes hg galaxy roles
Roles also get installed if roles path is missing, which
the tests currently require (fixes #8950)
10 years ago
Serge van Ginderachter 2474ce5819 Exit with rc 1 if role doesn't exist/is not found
fixes #8823
	modified:   bin/ansible-galaxy
10 years ago
James Cammarata aa46fcf096 Add error checking to ansible-galaxy to verify the roles_path is valid 10 years ago
James Cammarata c610783f90 Merge pull request #8911 from bbasleeper/devel
Adding a new 'load_callback_plugins' config option, defaults to False
10 years ago
James Cammarata 7b4df6e98e Fixing ansible-galaxy bug introduced in 399fe322 10 years ago
Bruno BAILLUET 16108e4a99 Adding a new 'load_callback_plugins' config option, defaults to False
This option, when set to True, allows "ansible" command to load callback plugins
10 years ago
James Cammarata f14dba8b2f Don't re-add galaxy deps if they've already been added for install
Fixes #8890
10 years ago
James Cammarata 9adde1eab0 Fix instance comparison for deps in bin/ansible-galaxy
Fixes #8884
10 years ago
James Cammarata 4698f85eac Merge pull request #8789 from retr0h/retr0h/add-role-path-to-role-file
Can override each role's install path
10 years ago
John Dewey 44b0ee5322 Can override each role's install path
Defaults to the system wide `roles-path` when `path` is not specified in the
provided `role-file`.  An example installing nginx to a relative path specified
by the `role-file`.

    - src: https://github.com/bennojoy/nginx
      path: vagrant/roles/
10 years ago
Matt Martz 206c201d87 The correct option is password_file. Fixes #8752 10 years ago
Will Thames 1787c29354 Improved inventory handling when inventory does not yet exist
Fixes #8324
Improves #7667
10 years ago
James Cammarata 32a5c2bf48 Merge pull request #8721 from sergevanginderachter/syntax_check_avoid_blank_output
Avoid multiple blank lines with --syntax-check
10 years ago
Michael DeHaan d66bb47db7 Fixing a typo, still some more work to do on CLI. 10 years ago
Serge van Ginderachter ad3d3c7379 Avoid multiple blank lines with --syntax-check
Only print a blank line between plays when also doing --list-hosts and/or
  --list-tasks, otherwise this output just a long list of blank lines, one for
  each play.
10 years ago
Michael DeHaan 399fe32287 Clarify examples further. 10 years ago
Michael DeHaan 2e95e21cad Remove some debug in ansible-galaxy upgrades, one of which raises errors down some code paths. 10 years ago
Michael DeHaan e7c0b95074 Work in progress on bin/ansible-galaxy changes testing. 10 years ago
Will Thames bf9ea81c4b Make galaxy work when API server not available
`ansible-galaxy init --offline ...` can create a role without
talking to the galaxy api server
`ansible-galaxy install ...` only needs to talk to the galaxy api
server for galaxy roles, not tar files or scm archives
Fixed a bug in command line role installation
10 years ago
Will Thames 31540246dd Handle older git archive commands
Older git archive commands create tar archives even with a tar.gz
extension. So change it to always create tar archives and have
the install_role method cope.

Removed ssh roles from the test case as they don't work unless
you can connect to bitbucket via ssh and have your key there.

Corrected a minor typo in error messages
10 years ago
Will Thames ada9074276 Allow installation of roles from yaml roles file
Added docs
Added more tests
Improved how roles are returned from the parsers
10 years ago
Will Thames 46b59b02ed Friendly Role Names and roles from URLs
* Roles can now be given a friendly name as third field in role spec csv
* Roles can be installed from URL (not just from archived SCMs)
* Integration tests to demonstrate this
* Unit tests to ensure that role spec parsing works as expected
10 years ago
Will Thames c2fe33f9f4 Tidied up a little, added tests
Moved repo_url_to_role_name to common method in ansible.utils
Added unit test for repo_url_to_role_name
Added integration tests for galaxy
10 years ago
Will Thames bf3066e650 Change to how SCM is determined
Change SCM determination from executing git/hg commands to explicit
in URL.

Fix check for already installed dependencies
10 years ago
Will Thames 36177396c4 Allow ansible-galaxy to install roles from URLs
ansible-galaxy can now refer to SCM URLs (git and hg at this point)
for role names
Dependencies need to use the full SCM URLs too.
Otherwise all seems to work well

Test rolesfile
```
http://bitbucket.org/willthames/git-ansible-galaxy,v1.1
https://bitbucket.org/willthames/hg-ansible-galaxy
```
(works with ssh too)
10 years ago
Will Thames 92f9b74a68 Restrict ansible-pull to only do scm checkout once
This addresses a bug in ansible-pull where running ansible-pull
with an existing inventory causes the ansible job that does
the SCM checkout to run twice - once for localhost and once
for the fully qualified hostname.

This can cause a race condition, and usually results in one
of the ansible checkouts failing because one of the scm checkouts
has its references updated underneath it. Although the SCM checkout
actually succeeds, ansible fails with non-zero exit status, and
so ansible-pull does not continue.

Now that localhost is implicit for ansible runs, the ansible
scm checkout can be done using just localhost as a target.
10 years ago
Michael DeHaan 3035f2dcc8 Merge pull request #8367 from msabramo/make_pip_install_editable_work
Make `pip install -e` work
10 years ago
Matt Martz d022cca637 If ansible and ansible-playbook accept a script for --vault-password-file so should ansible-vault 10 years ago
Michael DeHaan 4a05310ba0 Keep things alphabetical in vault option list. 10 years ago
Jakub Paweł Głazik 99a339fa7b Fix comments and error message 10 years ago
Jakub Paweł Głazik 58feee0f45 ansible-vault view - new command 10 years ago
Michael DeHaan b0295af7ee Merge pull request #7462 from chamill/devel
Add spaces between sentences in formatted docs.
10 years ago
Michael DeHaan 542aaa6ffe Use JSON instead of pickles for compatibility. 10 years ago
Josh Drake 917e868f65 Implement fact cache flushing alongside a command-line argument to invoke it. 10 years ago
Michael DeHaan 053019c439 Merge pull request #7765 from samdolan/devel
Raise exception if "file_name" isn't passed to bin/ansible-vault
10 years ago
James Cammarata f8845af195 Add path checking for relative/escaped tar filenames in the ansible-galaxy command 10 years ago
Marc Abramowitz 44b9f5e752 Make `pip install -e` work
This allows `pip install -e` and `python setup.py develop` to work
without having to do the stuff in
http://docs.ansible.com/intro_installation.html#running-from-source so
it's a tad nicer for Python programmers who are accustomed to installing
packages as editable/in development mode.

Fixes GH-8355 (https://github.com/ansible/ansible/issues/8355)
10 years ago
Michael DeHaan 5a2fd5c612 Ignore powershell implementation files with ansible-doc as documentation lives in Python stubs. 10 years ago
Michael DeHaan b69f096e8a Merge branch 'ufw' of git://github.com/Trozz/ansible into devel 10 years ago
Michael DeHaan 6caad9ac8f No hosts matched goes to stderr. 10 years ago
Michael DeHaan d4548fdd01 Merge pull request #8185 from retr0h/retr0h/align-markdown-headers
Retr0h/align markdown headers
11 years ago
John Dewey 4432ca3836 Align markdown headers
A fairly trivial change since `Role Name` and `Example Playbook`
will likely be modified anyways.  However, since all the other
sections are aligned properly, felt it would be nice to "clean this up".

Before:

    Role Name
    ========

    Example Playbook
    -------------------------

After:

    Role Name
    =========

    Example Playbook
    ----------------
11 years ago
C. Morgan Hamill 43b72f2a80 Add spaces between sentences in formatted docs.
Increases readability when using `ansible-doc`.
11 years ago
Scott Brown 5849bb3dba Fixing bug where the file handle is not closed properly because the parentheses are left off the call, telling Python to return a method but not call the method. 11 years ago
James Cammarata 4fc8d4b6fe Merge pull request #7649 from sivel/vault-password-script
Allow --vault-password-file to work with a script as well as a flat file
11 years ago
James Cammarata fe892fccb1 Merge remote-tracking branch 'svg/varsplugins_refactor' into svg_and_inventory_refactor 11 years ago
Michael Leer 37318ca095 include default options. #7938
amend ansible-doc to include default options as per feature request #7938
11 years ago
Matt Martz 19f5ce2c9c Allow --vault-password-file to work with a script as well as a flat file 11 years ago
Sam Dolan 6714748eeb Throw an exception for a missing <file_name> param in ansible-vault
Without this fix you have to enter your vault password before you realize
that you forgot to pass in the filename.  This commit checks that an
filename argument was at least passed on the command line.
11 years ago
James Cammarata 3abcfee681 Merge branch 'pr_fix2' of https://github.com/carlanton/ansible into carlanton-pr_fix2 11 years ago
Alex Chistyakov bb1941a906 ansible-pull should respect inventory file settings because, say, Python interpreter path can be non-default on a host 11 years ago
Anton Lindström 0593473389 Enable use of vault password for --syntax-check, --list-hosts and --list-tasks 11 years ago
Toshio Kuratomi f7b76e0394 Restore the pkg_resources calls so that we pull in the correct pycrypto on RHEL6 11 years ago
James Cammarata 0e7b9e5cfc Commenting out pkg_resources lines for now, as they break hacking/env-setup 11 years ago
James Cammarata 6879415f25 Merge branch 'feature/multi-version-import' of https://github.com/abadger/ansible into abadger-feature/multi-version-import 11 years ago
jctanner 63f66a0d3b Merge pull request #6585 from eggsby/patch-3
Allow vault encrypted vars as extra_vars
11 years ago
James Tanner 5795796546 Remove limitation on number of files for encrypt subcommand in ansible-vault 11 years ago
James Tanner 95a283ccaa Addresses #4109 Remove debug print statement 11 years ago
James Tanner c1f4142a29 Fixes #4109 Filter plays by tags when using --list-hosts 11 years ago
Serge van Ginderachter f8ea93c732 Move inventory.set_playbook_basedir from ansible-playbook to playbook constructor 11 years ago
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
11 years ago
jctanner adbd6865da Merge pull request #6681 from zytek/devel
Properly revert changes introduced in #6579
11 years ago
Jakub Paweł Głazik 6b53ac8a9a strip() vault password file 11 years ago
Jakub Paweł Głazik 08ba18668b Strip() vault password file 11 years ago
James Tanner 9169a11088 Fixes #4777 add --force-handlers option to run handlers even if tasks fail 11 years ago
James Tanner 8c2e1e2baa Addresses #6579 Disallow vault passwords with newline characters by stripping them in utils 11 years ago
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.
11 years ago
Thomas Omans 1727fddf50 Allow vault encrypted vars as extra_vars
Forward the vault_password to the yaml file utility.
11 years ago
Michael DeHaan 8eb547edaa Merge pull request #6531 from bob-smith/formatting
Add space after full stop in ansible-galaxy help
11 years ago
James Tanner c09e46517e Merge pull request #5864 from stevetjoa/ansible
adding -K flag for ask-sudo-pass to ansible-pull
11 years ago
James Tanner 70f4e0807c Fixes #6467 ansible command should not assume sudo if ask_sudo_pass or sudo_user 11 years ago
John Barker aa87afaa87 Add space after full stop in ansible-galaxy help 11 years ago
Michael DeHaan 71977bfe71 Merge pull request #5720 from mschurenko/devel
added random sleep option to ansible-pull
11 years ago
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
11 years ago
Michael DeHaan 887cb7652a Merge pull request #6004 from res0nat0r/fix_ansible-doc_snippets
Fix ansible-doc option output.
11 years ago
Michael DeHaan 0dde3b7080 Merge pull request #5895 from trbs/listtasks_honors_limit
make --list-tasks honor --limit
11 years ago
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.
11 years ago
Toshio Kuratomi 0fefab6651 Require a recent enough version of pycrypto and see that playbook and vault ues it. 11 years ago
James Tanner 0d6f6ad282 Implement new default cipher class AES256 11 years ago
Francesc Esplugas 0fd5829f10 get rid of newline chars when reading password file 11 years ago
James Tanner e3672dded0 Remove breakpoint 11 years ago
James Tanner b74105c689 Add --vault-password-file to bin/ansible-pull 11 years ago