* Fixes to the controller text model
* Change command line args to text type
* Make display replace undecodable bytes with replacement chars. This
is only a problem on pyhton3 where surrogates can enter into the msg
but sys.stdout doesn't know how to handle them.
* Remove a deprecated playbook syntax in unicode.yml
* Fix up run_cmd to change its parameters to byte string at appropriate times.
We couldn't copy to_unicode, to_bytes, to_str into module_utils because
of licensing. So once created it we had two sets of functions that did
the same things but had different implementations. To remedy that, this
change removes the ansible.utils.unicode versions of those functions.
This makes our recursive, ast.parse performance measures as fast as
pre-ziploader baseline.
Since this unittest isn't testing that the returned module data is
correct we don't need to worry about os.rename not having any module
data. Should devise a separate test for the module and caching code
porting @dominis 's ansible-shell tool from 1.9 and integrating it into ansible
added verbosity control
made more resilitent to several errors
added highlight color, to configurable colors
more resilient on exception and interruptions
prompt coloring, goes red and changes to # when using become = true and root
become setting is now explicit and not a toggle
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.
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.
- 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
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.
(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 ).
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
'_', 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
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.
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.
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.
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/
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.
`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