No description
e69e078569
The basic idea is sudo /bin/sh -c 'quoted_command'. We use Paramiko's low-level API to set a timeout, get a pseudo tty, execute sudo and the (shell quoted) command atomically, wait just until sudo is ready to accept the password before sending it down the pipe, and then return the command's stdout and stderr. This should be faster, as there are no unneeded sleeps. There are no permissions issues reading the output. It will raise socket.timeout if the command takes too long. However, this is a per-read timeout, not a total execution timeout, so as long as the command is writing output and you are reading it, it will not time out. Local and non-sudo commands remain unchanged, but should probably adopt a similar approach. Since this is a significant change, it needs a lot of testing. Also, someone smarter than I should double-check the quoting and execution, since it is a security issue. |
||
---|---|---|
bin | ||
docs/man | ||
examples | ||
hacking | ||
lib/ansible | ||
library | ||
packaging | ||
test | ||
.gitignore | ||
COPYING | ||
Makefile | ||
MANIFEST.in | ||
README.md | ||
setup.py | ||
VERSION |
Ansible
Ansible is a radically simple configuration-management, deployment, task-execution, and multinode orchestration framework.
Read all about at it at (http://ansible.github.com)
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
- ansible-project mailing list
- irc.freenode.net: #ansible
Patch Instructions
Contributions to the core and modules are greatly welcome.
- Required Process:
- Submit github pull requests to the "ansible/integration" branch
- Make sure "make tests" passes before submitting any requests.
- Bonus points:
- Joining the mailing list
- Using squash merges
- Updating the "rst/*" files in the docs project and "docs/" manpage content
- Adding more unit tests
- Avoid:
- Sending patches to the mailing list directly.
- Sending pull requests to the 'master' branch instead of the integration branch.
- Sending pull requests to mpdehaan's personal ansible fork.
Author
Michael DeHaan -- michael.dehaan@gmail.com