No description
Find a file
Ralph Bean a9a2a96218 Add a new unique_name param to the digital_ocean module for idempotence.
As it stands now, it is difficult to write idempotent tasks for digital
ocean droplets.  Digital ocean assigns new nodes a random id when they
are provisioned and that id is the only key that can be used to identify
it in subsequent runs of that play.

The workflow previously involved manual intervention:

- write a play defining a new node with no specified id
- run it, collect the randomly assigned id by hand
- modify the play to add the id by hand so future runs don't create
  duplicate nodes
- perform future re-runs that check if the node exists (by its id)
  - if it does exist then do nothing.
  - if it does not exist, then create it and return a *new random id*
  - collect the new random id by hand, modify the playbook file, and
    start all over.

Its a huge pain.

The modifications in this commit allow you to use the 'hostname' as a
primary key for idempotence with digital ocean.  By default, digital
ocean will let you create as many hosts with the same hostname as you
like.  Here, we provide an option to constrain the user to using only
unique hostnames.

The workflow will now look like:

- write a play defining a new node with a specified hostname and
  "unique_name: true""
- run it, create the new node and move on.
- re-run it, notice that a node with that hostname is already created
  and move on.
2013-09-18 16:07:22 -04:00
bin Fixed -e "" on ansible-playbook. 2013-09-07 00:28:39 -03:00
docs/man Adding sshpass as packaging requirement and fixing VERSION 2013-09-13 17:39:14 -05:00
docsite Fixing up some search/replace errors regarding user/remote_user 2013-09-18 12:22:41 -05:00
examples Added accelerate_port to plays, and made it configurable 2013-08-28 11:14:58 -05:00
hacking Fixup docs formatting. 2013-08-06 10:53:56 -04:00
lib/ansible Fix how module_common handles selevel (issue #4142) 2013-09-17 14:47:00 -07:00
library Add a new unique_name param to the digital_ocean module for idempotence. 2013-09-18 16:07:22 -04:00
packaging Adding sshpass as packaging requirement and fixing VERSION 2013-09-13 17:39:14 -05:00
plugins zabbix inventory: print errors to stderr 2013-09-18 09:56:30 +02:00
test Merge branch 'failed_when' of https://github.com/hnakamur/ansible into hnakamur-failed_when 2013-09-16 07:35:34 -05:00
.gitignore Update .gitignore 2013-06-10 15:46:16 -04:00
CHANGELOG.md Added standardized includes to the CHANGELOG 2013-09-16 16:32:32 -05:00
CONTRIBUTING.md Update CONTRIBUTING.md 2013-09-13 21:26:49 -04:00
COPYING license file should be in source tree 2012-03-15 20:24:22 -04:00
Makefile Simplify the selection of date command 2013-09-15 21:27:18 +02:00
MANIFEST.in Add some docs/examples 2012-08-14 13:05:44 -04:00
README.md Update README.md 2013-09-13 20:28:00 -04:00
RELEASES.txt Update releases.txt 2013-09-13 17:26:14 -04:00
setup.py Update URLs and email address in setup.py 2013-08-24 11:25:02 -04:00
VERSION Adding sshpass as packaging requirement and fixing VERSION 2013-09-13 17:39:14 -05:00

Ansible

Ansible is a radically simple configuration-management, deployment, task-execution, and multinode orchestration framework.

Read the documentation and more at http://ansibleworks.com/

Many users run straight from the development branch (it's generally fine to do so), but you might also wish to consume a release. You can find instructions on http://ansibleworks.com/docs/gettingstarted.html for a variety of platforms. If you want a tarball of the last release, go to http://ansibleworks.com/releases/ and you can also install with pip (though that will bring in some optional binary dependencies you normally do not need).

Design Principles

  • Dead simple setup
  • Super fast & parallel by default
  • No server or client daemons; use existing SSHd
  • No additional software required on client boxes
  • Modules can be written in ANY language
  • Awesome API for creating very powerful distributed scripts
  • Be usable as non-root
  • The easiest config management system to use, ever.

Get Involved

  • Read Contributing.md 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.
  • irc.freenode.net: #ansible

Branch Info

  • Releases are 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 "CONTRIBUTING.md" for process notes.

Author

Michael DeHaan -- michael@ansibleworks.com

AnsibleWorks