Commit Graph

303 Commits (08b2f147e3e59a65ee4a2a52b4e9d2a3e1deb736)

Author SHA1 Message Date
Michael DeHaan a4b3b7a2cf Local connection doesn't need a port. 14 years ago
cocoy 1220a46e3a Bugfix for issue #245.
Do not override the value of user and hostname.
Get port and identityfile only.
14 years ago
jkleint 44486223ed Unify normal and sudo remote command execution.
Commit SHA: 87b1cf45 that put temp files in `$HOME/.ansible` instead of `/home/<user>/.ansible` was producing a directory literally called `$HOME` (no expansion) with non-sudo remote execution.  I'll take the blame for this one, as `ParamikoConnection.exec_command()` was not using the shell for non-sudo commands.  This does sudo and non-sudo execution the same way, using the shell, so environment variables should get expanded.
14 years ago
Seth Vidal fa2aebc8a6 fix for issue #230 - handle template taking 3 args 14 years ago
Michael DeHaan 87b1cf45a4 Merge pull request #226 from cread/make-osx-tests-pass
Use the $HOME env var instead of hard coding /home/<username>
14 years ago
jkleint 4e1bc43645 Support YAML lists of hosts in playbooks.
Reading the docs, I was a bit confused as to how to specify multiple hosts/groups in a playbook.  Being YAML, I assumed a normal YAML list would work:

    ---
    - hosts: [host1, host2]

But this crashes when inventory._matches() assumes hosts is a string.  This patch just checks if hosts is a list, and turns it into a string joined by ';'.
14 years ago
Chris Read dbb4afff50 Use the /Users/cread env var instead of hard coding /home/<username> 14 years ago
jkleint b50c50748e _chain_file_module() calls .get() on error string
runner._return_from_module() normally returns a list (?) of `[str,bool,dict,str]`, but on error it returns `[str,bool,str,str]`.  runner._chain_file_module() then tries to call .get() on the third item (`data2`), which fails when it's a string.  This patch only accesses `data2` if the return value was `ok`.  It might be better to return consistent types in both cases, but I'm not sure where/how else the return value is used.
14 years ago
Seth Vidal 41619278e5 handle issues when the hostlist is inadvertently set executable
and/or executing it fails. This produces a nicer error message than
a traceback
14 years ago
Michael DeHaan 02abb5a83b Merge pull request #217 from jhoekx/connection-fixes
Expand user in ssh identity file
14 years ago
Jeroen Hoekx 973b1fe02e Fix incorrect merge of custom-facts branch.
This fixes #216.
14 years ago
Jeroen Hoekx c2f1aefaf1 Expand user in SSH identity file. 14 years ago
Jeroen Hoekx 1804df0bae Whitespace fixes in connection.py 14 years ago
Matt Coddington d34160ed26 cast ssh port number as integer 14 years ago
Michael DeHaan 89c013035e Merge branch 'integration' of https://github.com/cocoy/ansible into cocoy-integration 14 years ago
Michael DeHaan bced4c9db1 Merge branch 'jhoekx-custom-facts' into devel 14 years ago
Michael DeHaan 49cca98f1e Merge branch 'custom-facts' of https://github.com/jhoekx/ansible into jhoekx-custom-facts
Conflicts:
	lib/ansible/runner.py
14 years ago
Michael DeHaan 346df537b4 Merge branch 'integration' of https://github.com/jkleint/ansible into jkleint-integration 14 years ago
Michael DeHaan 7de90c4e64 Version bump for integration branch (soon to be renamed 'devel'), didn't update package
changelogs yet since this isn't released yet (but 0.3 is)
14 years ago
Michael DeHaan 4d62510997 Version bump for 0.3 release 14 years ago
Michael DeHaan a8707e48e8 Fix merge issue 14 years ago
Michael DeHaan c00699d0ef Merge branch 'integration'
Conflicts:
	lib/ansible/playbook.py
	lib/ansible/runner.py
	library/apt
14 years ago
Michael DeHaan 321ed53e3a Fetch module doesn't set invocation parameter as it invokes nothing, so don't let that be an error. 14 years ago
jkleint e69e078569 More robust remote sudo.
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.
14 years ago
Jeroen Hoekx 2dc9a563ef Allow modules to return facts.
If the module result contains "ansible_facts", that will be added to the setup
cache.
14 years ago
cocoy c844a2d072 Fix to skip /.ssh/config if don't exist rather than raise an error. 14 years ago
cocoy 645b7a2dff Add .ssh/config support 14 years ago
Michael DeHaan 533c2c6126 Make it possible to use facts from hosts in templates for other hosts.
It works like this:

{{ hostvars['127.0.0.1']['ansible_eth0']['ipv4']['address'] }}
14 years ago
Michael DeHaan 767282df2a Small style fixes for indentation and spacing. 14 years ago
Michael DeHaan bed5da6086 Remove unused assignment 14 years ago
Michael DeHaan ddc0342920 Unused import 14 years ago
Michael DeHaan 1e7b60b9a5 Unused import 14 years ago
Michael DeHaan 9d0f2a6e9b Unused import 14 years ago
Michael DeHaan 3081bb93f1 Use /var/tmp for root by default to avoid /tmp being mounted noexec, and segregate tmp files for other users
into their home directories.
14 years ago
Michael DeHaan 3d72260887 Make it such that modules with no arguments work fine in playbooks (like ping, which is
non-sensical, but also if the user wrote a module that took none)
14 years ago
Michael DeHaan c6b8e1621d A better fix for slurp, expand path in the module. 14 years ago
Michael DeHaan 13ba31231e Fixup slurp module usage when not running as root, fix error handling path in slurp module. 14 years ago
Michael DeHaan 8a433ecb96 Merge branch 'align-vars-syntax' of https://github.com/jhoekx/ansible into jhoekx-align-vars-syntax 14 years ago
Jeroen Hoekx cdb8213dcc Supported 'listed' vars in playbooks. 14 years ago
Jeroen Hoekx 903e4f6eae Support dicts in inventory vars. 14 years ago
Michael DeHaan 9cd492befe make all templating happen locally, so no jinja2 deps are ever required 14 years ago
Michael DeHaan 30d06dbcea Don't force down ansible facts back to setup, the setup module won't like parsing them on input and that
data is already there.
14 years ago
Michael DeHaan 5fa3d9b148 Teach playbooks to template locally to eliminate the need for Jinja2 on remote nodes.
You still need jinja2 if using /usr/bin/ansible vs /usr/bin/ansible-playbook though
this could change later by fetching the ansible file with a 'slurp' module.
14 years ago
Michael DeHaan da0209dbc4 The fetch module really should preserve the whole directory structure being fetched to allow subsequent calls,
particularly in playbook, to recreate the host tree structure.  Making it thus.
14 years ago
Jeroen Hoekx 22ff8282a8 Template template module source. 14 years ago
Jeroen Hoekx b678cf783c Template the source file of the copy module. 14 years ago
Michael DeHaan de70277173 No need to save setup files to disk, this is what SETUP_CACHE effectively does. 14 years ago
Jeroen Hoekx aa555b8b16 Inventory: AnsibleError is not global... 14 years ago
Michael DeHaan da6cb1ca6e Less scrolling over constructor params now that documentation follows 14 years ago
Michael DeHaan 3f26a1c7f6 verbose option is not being used, so remove it. debug variable still exists. 14 years ago