Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com/ansible/
Find a file
Jim Gu 8473765ae6 yaml callback fails on python3
When the URI module returns complex JSON objects, the YAML callback
fails while trying to represent these objects.  The problem arises
because the filter method returns an iterator in Python 3, rather than a
str object.  Therefore, the str method expandtabs() is not available,
and the callback fails with the following error:

[WARNING]: Failure using method (v2_runner_on_failed) in callback plugin (<ansible.plugins.callback.yaml.CallbackModule object at 0x7f7c7ed8aa20>): 'filter' object has no attribute 'expandtabs'

Issue can be replicated by running this playbook:

- hosts: localhost
  gather_facts: false
  tasks:
    - uri:
        url: https://jsonplaceholder.typicode.com/posts

ansible-playbook tmp.yml -v

(cherry picked from commit 5839f07e0f)
2018-04-18 10:00:44 -07:00
.github Add etcd3 to botmeta (#35824) 2018-02-07 10:18:00 +01:00
bin Normalize usage of temp and tmp on tmp (#36221) 2018-02-15 09:01:33 -08:00
changelogs nxos bugfixes cherry-pick (#38950) 2018-04-18 09:59:39 -04:00
contrib Set raw=True when reading passwords from ConfigParser files. (#35582) 2018-04-18 09:41:16 -07:00
docs Fix places in docs that refer to modules without namespace 2018-04-18 08:48:41 -07:00
examples Implement plugin filtering 2018-01-22 16:54:53 -08:00
hacking Add new aws_waf_condition module (#33110) 2018-02-01 18:16:27 -05:00
lib/ansible yaml callback fails on python3 2018-04-18 10:00:44 -07:00
licenses Create a short license for PSF and MIT. (#32212) 2017-11-06 10:25:30 -08:00
packaging Convert README from Markdown to ReStructured Text and use as longdesc (#22330) 2018-04-11 11:57:24 -07:00
test avoid caching invetnory sources in loader (#38242) 2018-04-18 09:59:35 -07:00
ticket_stubs add bug_internal_api.md to ticket_stubs (#34370) 2018-01-03 09:46:10 -06:00
.coveragerc Docker image updates for integration tests. (#26054) 2017-06-23 12:45:38 -07:00
.gitattributes avoid exporting files useless to dist 2017-06-23 15:56:43 -04:00
.gitignore Followup to docs refactor pull request #36067 - fixes gitignore and c… (#36120) 2018-02-13 11:00:43 -08:00
.gitmodules Code cleanup. 2016-12-08 11:35:04 -05:00
.mailmap Fix syntax typo 2017-12-24 12:16:17 +01:00
.yamllint Add module support to yamllint sanity test. (#34964) 2018-01-16 15:08:56 -08:00
ansible-core-sitemap.xml Remove remnants of obsolete fireball mode. 2016-12-09 16:56:34 -07:00
CHANGELOG.rst convert CHANGELOG to per-major-ver and generated 2018-02-15 23:06:39 -08:00
CODING_GUIDELINES.md english corrections (#35307) 2018-01-29 21:09:56 -08:00
CONTRIBUTING.md Update CONTRIBUTING.md to point to the right stuff (#32258) 2017-10-27 11:27:25 -04:00
COPYING license file should be in source tree 2012-03-15 20:24:22 -04:00
docsite_requirements.txt Fixes the build issue pertaining to sphinx-build which is required to build ansible (#22480) 2017-03-14 14:19:46 -07:00
Makefile fix RPM builds when REPOTAG is not defined 2018-04-04 13:55:56 -07:00
MANIFEST.in Convert README from Markdown to ReStructured Text and use as longdesc (#22330) 2018-04-11 11:57:24 -07:00
MODULE_GUIDELINES.md Moving guidelines to the official docs (#32260) 2017-10-27 11:40:42 -04:00
README.rst Upgrade PYPI badge to point to new Warehouse site 2018-04-17 16:03:11 +02:00
RELEASES.txt New release v2.5.0 2018-03-22 17:50:20 -07:00
requirements.txt Cyptography pr 20566 rebase (#25560) 2017-06-27 06:00:15 -07:00
ROADMAP.rst No hardcoding roadmaps (#32981) 2017-11-16 08:03:10 -08:00
setup.py Suppress a UserWarning about unknown dist option 2018-04-13 00:59:32 +02:00
shippable.yml Remove EOL openSUSE Leap 42.2 from CI. 2018-01-31 21:50:21 -08:00
tox.ini Convert ansible-test compile into a sanity test. 2018-01-25 09:45:36 -08:00

|PyPI version| |Docs badge| |Build Status|

*******
Ansible
*******

Ansible is a radically simple IT automation system. It handles
configuration-management, application deployment, cloud provisioning,
ad-hoc task-execution, and multinode orchestration -- including
trivializing things like zero-downtime rolling updates with load
balancers.

Read the documentation and more at https://ansible.com/

You can find installation instructions
`here <https://docs.ansible.com/intro_getting_started.html>`_ for a
variety of platforms.

Most users should probably install a released version of Ansible from ``pip``, a package manager or
our `release repository <https://releases.ansible.com/ansible/>`_. `Officially supported
<https://www.ansible.com/ansible-engine>`_ builds of Ansible are also available. Some power users
run directly from the development branch - while significant efforts are made to ensure that
``devel`` is reasonably stable, you're more likely to encounter breaking changes when running
Ansible this way.

Design Principles
=================

*  Have a dead simple setup process and a minimal learning curve
*  Manage machines very quickly and in parallel
*  Avoid custom-agents and additional open ports, be agentless by
   leveraging the existing SSH daemon
*  Describe infrastructure in a language that is both machine and human
   friendly
*  Focus on security and easy auditability/review/rewriting of content
*  Manage new remote machines instantly, without bootstrapping any
   software
*  Allow module development in any dynamic language, not just Python
*  Be usable as non-root
*  Be the easiest IT automation system to use, ever.

Get Involved
============

*  Read `Community
   Information <https://docs.ansible.com/community.html>`_ for all
   kinds of ways to contribute to and interact with the project,
   including mailing list information and how to submit bug reports and
   code to Ansible.
*  All code submissions are done through pull requests. Take care to
   make sure no merge commits are in the submission, and use
   ``git rebase`` vs ``git merge`` for this reason. If submitting a
   large code change (other than modules), it's probably a good idea to
   join ansible-devel and talk about what you would like to do or add
   first to avoid duplicate efforts. This not only helps everyone
   know what's going on, it also helps save time and effort if we decide
   some changes are needed.
*  Users list:
   `ansible-project <https://groups.google.com/group/ansible-project>`_
*  Development list:
   `ansible-devel <https://groups.google.com/group/ansible-devel>`_
*  Announcement list:
   `ansible-announce <https://groups.google.com/group/ansible-announce>`_
   -- read only
*  irc.freenode.net: #ansible

Branch Info
===========

*  Releases are named after Led Zeppelin songs. (Releases prior to 2.0
   were named after Van Halen songs.)
*  The devel branch corresponds to the release actively under
   development.
*  Various release-X.Y branches exist for previous releases.
*  We'd love to have your contributions, read `Community
   Information <https://docs.ansible.com/community.html>`_ for notes on
   how to get started.

Authors
=======

Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
(michael.dehaan/gmail/com) and has contributions from over 1000 users
(and growing). Thanks everyone!

Ansible is sponsored by `Ansible, Inc <https://ansible.com>`_

License
=======

GNU General Public License v3.0

See `COPYING <COPYING>`_ to see the full text.

.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible.svg
   :target: https://pypi.org/project/ansible
.. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg
   :target: http://docs.ansible.com/ansible
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
   :target: https://app.shippable.com/projects/573f79d02a8192902e20e34b