Giter Club home page Giter Club logo

ansible / ansible Goto Github PK

View Code? Open in Web Editor NEW
61.1K 61.1K 23.7K 247.1 MB

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

Home Page: https://www.ansible.com/

License: GNU General Public License v3.0

Makefile 0.01% Python 87.63% Shell 2.75% PowerShell 7.04% Go 0.02% Roff 0.01% C# 2.12% Batchfile 0.01% Jinja 0.43%
ansible hacktoberfest python

ansible's Introduction

PyPI version Docs badge Chat badge Build Status Ansible Code of Conduct Ansible mailing lists Repository License Ansible CII Best Practices certification

Ansible

Ansible is a radically simple IT automation system. It handles configuration management, application deployment, cloud provisioning, ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible website.

Design Principles

  • Have an extremely simple setup process with a minimal learning curve.
  • Manage machines 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.

Use Ansible

You can install a released version of Ansible with pip or a package manager. See our installation guide for details on installing Ansible on a variety of platforms.

Power users and developers can run the devel branch, which has the latest features and fixes, directly. Although it is reasonably stable, you are more likely to encounter breaking changes when running the devel branch. We recommend getting involved in the Ansible community if you want to run the devel branch.

Get Involved

  • Read Community Information 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.
  • Join a Working Group, an organized community devoted to a specific technology domain or platform.
  • Submit a proposed code update through a pull request to the devel branch.
  • Talk to us before making larger changes to avoid duplicate efforts. This not only helps everyone know what is going on, but it also helps save time and effort if we decide some changes are needed.
  • For a list of email lists, IRC channels and Working Groups, see the Communication page

Coding Guidelines

We document our Coding Guidelines in the Developer Guide. We particularly suggest you review:

Branch Info

  • The devel branch corresponds to the release actively under development.
  • The stable-2.X branches correspond to stable releases.
  • Create a branch based on devel and set up a dev environment if you want to open a PR.
  • See the Ansible release and maintenance page for information about active branches.

Roadmap

Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.7, 2.8). The Ansible Roadmap page details what is planned and how to influence the roadmap.

Authors

Ansible was created by Michael DeHaan and has contributions from over 5000 users (and growing). Thanks everyone!

Ansible is sponsored by Red Hat, Inc.

License

GNU General Public License v3.0 or later

See COPYING to see the full text.

ansible's People

Contributors

abadger avatar akasurde avatar alikins avatar andersson007 avatar bcoca avatar caphrim007 avatar dagwieers avatar dhozac avatar felixfontein avatar ganeshrn avatar gundalow avatar jborean93 avatar jctanner avatar jimi-c avatar mattclay avatar migumun avatar mkrizek avatar mpdehaan avatar mscherer avatar nitzmahone avatar privateip avatar qalthos avatar rcarrillocruz avatar resmo avatar s-hertel avatar samccann avatar samdoran avatar sivel avatar trishnaguha avatar willthames avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansible's Issues

be able to force --hosts on playbooks

The pattern for a playbook can be dictated inside the playbook file.

However, it would be nice to write patterns that could be applied when desired, especially for when bringing up new cloud instances. Make it possible to pass --hosts into playbook to override the pattern for each and every play in the playbook.

module cleanup

standardize a function for parse_kv, and include it where needed, same for parse_str, exit_with_json, etc.

Make things less scripty

make a remotescript module

would just automate the combo of copy+shell , which is already possible, down to one command. Should be doable entirely in Runner as a virtual module with no actual module needed.

we don't want to be a script driven system but might as well make this as easy as possible for when someone is doing deployments and needs to fire off a DB upgrade, etc.

xmllint make error, typo

$ sudo make install
a2x -D docs/man/man1/ -d manpage -f manpage docs/man/man1/ansible.1.asciidoc
a2x: ERROR: xmllint --nonet --noout --valid /Users/nocturnal/Development/homebrew/ansible/docs/man/man1/ansible.1.xml returned non-zero exit status 4
make: *** [docs/man/man1/ansible.1] Error 1
$ sudo xmllint --noent --noout --valid /Users/nocturnal/Development/homebrew/ansible/docs/man/man1/ansible.1.xml

On Mac OS X Lion 10.7.3, it used to work before the last git pull.

'chaoslemur' module for testing playbook error handling

chaoslemur should return ok sometimes, failure sometimes, nothing sometimes, and invalid JSON sometimes, so that you can load up your system with lots of duplicate host aliase and check that failed hosts get filtered out and reported on correctly.

we do not have ship chaoslemur but it would be very useful for testing.

add 'do what I mean' logical names for various state values

for service, 'running' is a valid state, but 'started' should also be, because 'restarted' is one and it's easy to type the wrong thing

for 'file', 'present' should probably be legal for people who are trying to do puppet things. in fact, most state names should take the puppet values even if we don't take all the various flags (because we're simpler, etc)

make module_test_script to help in developing modules

if we accept the patch that makes arguments come from files (not the command line), create a scripts script to make testing them via the command line (outside of ansible) trivial.

include this in the module development guide

No longer installable without root permissions

<tbielawa>@(deepfryer)[~/Projects/ansible] 12:25:01  (master) 
$ make install
...
running install_lib
creating /usr/lib/python2.7/site-packages/ansible
error: could not create '/usr/lib/python2.7/site-packages/ansible': Permission denied
make: *** [install] Error 1

Whoops!

investigate jinja2 sandbox mode

allegedly filters out unsafe API calls in templates

Maybe something we want for the default as I think templates should only be good for variables anyway

be able to do conditional things in playbooks

example: if X is in the variables, do this

also should probably include previous command results in those vars

- name: blah
action: foo
if: x equal 3

- name: blah
action: foo
if: x like bar

ETC ETC ETC

playbooks need callback upgrades

on task notify, no event seems to be called in tests when a notifer is started ...

and we also should pass the successful results to the on_ok handler (which probably is called).

we can test all these via TestPlaybooks.py

accelerated module functions

make some common functions (optionally) insertable into each module prior to xfer.

{{ ANSIBLE_QUICKSTART }}

also includes required python imports

parse_kv_args() -> dict

parse_string_args() -> string

require_fields(dict)

exit_with_json(dict) -> prints and calls sys.exit()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.