Commit Graph

298 Commits (6350dedd7a470a0b74a701f06307a9fe9568d15f)

Author SHA1 Message Date
Daniel Hokka Zakrisson 00aa584c57 Don't double dwim first_available_file in template 2012-11-06 20:34:05 +01:00
fdavis b1dbeec66c Allows use of scp instead of sftp in
Added a boolean constant scp_if_ssh to the config
Added scp support for the ssh connection plugin
Refers to #1279
2012-11-05 14:25:40 -08:00
Jeroen Hoekx 8ffed6df75 Support custom jinja2 filters.
This uses the plugin framework to add filter plugins.
The previously hardcoded core filters are defined using the plugin
framework now.
2012-11-05 15:11:34 +01:00
Michael DeHaan 154a00e612 Merge branch 'plugin-sanity' of git://github.com/dhozac/ansible into try_new_plugins 2012-11-03 19:04:23 -04:00
Seth Vidal e19c81977d if a module returns failed in the results, don't fail unless failed is not false. 2012-11-02 15:24:17 -04:00
Daniel Hokka Zakrisson e05e514861 Create a plugin loader system 2012-11-02 01:24:14 +01:00
Michael DeHaan 4c156e4df8 Merge pull request #1502 from dhozac/improved-lookup-plugins
Improved lookup plugins
2012-11-01 16:36:03 -07:00
Daniel Hokka Zakrisson fbda2d4628 Use default port if ansible_ssh_port is not set for the delegated node
Also add testcase for it.
2012-11-01 12:00:49 +01:00
Daniel Hokka Zakrisson c519d5dac0 Add a template lookup plugin
Requires that inject be passed to run
2012-10-31 16:57:10 +01:00
Daniel Hokka Zakrisson 37d9acc097 Make lookup API extensible and allow basedir to be passed
This allows using with_fileglob in play context, e.g.
- include: $item
  with_fileglob: tasks/*.yml
as well as prepares for other data to be passed.
2012-10-31 16:55:38 +01:00
Daniel Hokka Zakrisson 2c77cf1a49 Skip tasks with a with_* that is empty 2012-10-31 16:37:26 +01:00
Michael DeHaan c0747b7baa pep8 fixes 2012-10-30 20:42:07 -04:00
Jeroen Hoekx b336d40101 Add a group_by action plugin. 2012-10-29 13:10:23 +01:00
Jeroen Hoekx f963db6c2a Fix output of pause plugin. 2012-10-29 10:57:13 +01:00
Jeroen Hoekx 77162e95e4 Send a host to runner executor instead of a letter.
Discovered in #1463 .
2012-10-29 09:45:44 +01:00
Michael DeHaan e04dab904a Use previous proven multiprocessing logic as the simplification didn't have the same Ctrl-C handling and may
be subject to race issues, though still don't pass Runner to each.  Still seems performant.
2012-10-26 18:11:38 -04:00
Daniel Hokka Zakrisson 1052dd9c8f Initialize sftp variable to fix error on transferless session 2012-10-26 23:54:21 +02:00
Michael DeHaan 5e2c2564bc Explicitly execute /bin/sh versus $SHELL because some folks have very incompatible/weird shells. We do not
execute modules through the shell, this is only for basic ops, so should be sufficient.
2012-10-25 23:00:07 -04:00
Michael DeHaan ff787146d1 stray debug 2012-10-25 22:24:15 -04:00
Michael DeHaan 24416b9e49 Remove stray debug message 2012-10-25 22:19:50 -04:00
Michael DeHaan 3257c5b61f Some caching improvements to paramiko which are still not yet fully leveraged
in playbook mode, since the Runner still closes abstract host connections completely
and does not have a LRU.
2012-10-25 22:09:54 -04:00
Michael DeHaan 4c83c274e0 Don't close paramiko SFTP multiple times in the same runner pass. Noticeable performance increase. 2012-10-25 21:49:28 -04:00
Michael DeHaan 19a5f86c2e Merge pull request #1452 from dhozac/with_items-as-plugin
Make with_items a lookup plugin
2012-10-25 18:24:34 -07:00
Michael DeHaan 9a141160a4 Merge pull request #1449 from dhozac/localhost-interpreters
Use the delegated host's interpreters
2012-10-25 18:19:26 -07:00
Daniel Hokka Zakrisson 026e251b94 Make with_items a lookup plugin 2012-10-25 15:10:33 +02:00
Michael DeHaan ffca0283b0 Closing pool explicitly may cause some exceptions on certain Pythons, disable for now. 2012-10-25 09:07:33 -04:00
Daniel Hokka Zakrisson 13a422261b Use the delegated host's interpreters 2012-10-25 14:10:04 +02:00
Michael DeHaan bbe66e7610 Merge pull request #1437 from lorin/sudo-nonroot-bugfix
Fix chmod occurring as wrong user when sudo as non-root
2012-10-24 17:01:32 -07:00
Daniel Hokka Zakrisson b1200c16df path_dwim the path given to with_fileglob 2012-10-25 00:52:42 +02:00
Lorin Hochstein 38fdc24966 Fix chmod occurring as wrong user when sudo as non-root
If you sudo to a non-root user, you get a permission denied error.
Here's an example:

    $ ansible myserver.example.com -m postgresql_db -a "db=mydatabase" -u ubuntu -s -U postgres
    myserver.example.com | FAILED >> {
        "failed": true,
        "msg": "chmod: changing permissions of `/tmp/ansible-
        1351092257.96-157699143369671/postgresql_db': Operation not
        permitted\n/usr/bin/python: can't open file '/tmp/ansible-
        1351092257.96-157699143369671/postgresql_db': [Errno 13]
        Permission denied\n",
        "parsed": false
    }

The problem is that ansible is doing the chmod as the sudo user
when it should be doing it as the remote user.
2012-10-24 11:30:56 -04:00
Michael DeHaan f1f44843c3 close the pool. 2012-10-24 07:56:23 -04:00
Michael DeHaan 92ce8a0517 Refine new keyboard interrupt handling. Output still a bit gross. 2012-10-24 07:46:24 -04:00
Michael DeHaan 47b1315ac7 Reinstate Ctrl+C handling 2012-10-24 07:40:48 -04:00
Michael DeHaan a4af4a7049 Since we are not needing to pass runner through the multiprocessing queue, just use
multiprocessing.pool.  Pushing so it can get wider testing.
2012-10-23 08:19:15 -04:00
Michael DeHaan 856dd5a9aa Don't pass runner instance through the mulitprocessing queue, fix temp dir removal 2012-10-23 08:04:32 -04:00
Daniel Hokka Zakrisson 1449c8ac67 Fix ansible_ssh_host again
This time with unit tests to ensure it keeps working.
2012-10-21 21:22:56 +02:00
Michael DeHaan 3c6d9972fe clarify message about name of configuration parameter 2012-10-21 07:12:06 -04:00
Michael DeHaan cbc12f0dba Various performance streamlining and making the file features usable in all modules without daisy chaining. 2012-10-20 22:55:09 -04:00
Michael DeHaan 4104478abd Added 'script', a module that can push and insantly run a remote script. Replaces the need to copy+command.
This is a bit of a rough draft, some error handling still needs to be added.
2012-10-20 12:12:07 -04:00
Michael DeHaan 019f775a93 DWIM the paths for first_available_file 2012-10-20 11:11:31 -04:00
Michael DeHaan 6fa1a49037 Fix the basic templating system such that when the template ends in '$', life continues as normal. 2012-10-20 10:57:52 -04:00
Daniel Hokka Zakrisson e3d18048d4 None is unfortunately not an integer 2012-10-19 16:18:38 +02:00
Michael DeHaan 31b45479e8 When using delegation, local_action should always use the local connection type. 2012-10-18 20:18:33 -04:00
Daniel Hokka Zakrisson 979999b886 Port should be an integer 2012-10-18 21:48:57 +02:00
Daniel Hokka Zakrisson 19797e1a29 Accessing a node that doesn't exist throws an exception 2012-10-18 21:48:10 +02:00
Michael DeHaan d5db8e937e Fix port overrides such that with fireball mode you don't have to specify an explicit port. 2012-10-17 22:50:17 -04:00
Michael DeHaan 0837a29e51 Only expand lists in templating inside of module action lines, to avoid breaking usage with with_items and "in" statements, etc 2012-10-17 19:35:12 -04:00
Michael DeHaan acf2c23808 Various tweaking of the delegate_to loop code. 2012-10-17 19:17:41 -04:00
Daniel Hokka Zakrisson 37b91c7b81 Fix ansible_ssh_host after 339c05bb 2012-10-17 19:17:41 -04:00
Daniel Hokka Zakrisson 519a1f3f23 Remove debug print statements 2012-10-17 22:45:17 +02:00
Michael DeHaan 22e3e7f323 Allow use of variables in delegate_to 2012-10-16 21:05:09 -04:00
Michael DeHaan a69e59ab2b Allows delegate_to to use inventory host/port info. 2012-10-16 20:57:37 -04:00
Daniel Hokka Zakrisson ab44a4abba Load additional plugins from path specified in configuration 2012-10-14 21:09:24 +02:00
Daniel Hokka Zakrisson 1aaf86069a Look for plugins in the playbook's basedir 2012-10-14 21:09:23 +02:00
Michael DeHaan c5d2f6b0d3 implement lookup plugins for arbitrary enumeration over arbitrary things. See the mailing list for some cool examples. 2012-10-12 20:07:05 -04:00
Michael DeHaan f3d7294690 Test for directory existance, fix exception catching granularity 2012-10-11 07:56:01 -04:00
Michael DeHaan 448c89a06d It has been reported that occasionally the md5sum command on certain platforms (?) can fail, where I suspect there is noise in the output stream.
In those events, capture the output so we can report the error more properly.
2012-10-11 07:44:41 -04:00
Michael DeHaan 04954dbc1e Makes ports configurable for fireball. Note port defaults really belong in the connection plugins, not runner, which can be refactored later. 2012-10-08 19:03:37 -04:00
Jeroen Hoekx 46a4ae74a7 Add inventory variables to hostvars.
Look up only when requested and cache the result.
2012-10-08 20:26:58 +02:00
Tim Bielawa 9f6da7b885 Fix variable injection in pause module args. Closes #1209 2012-10-03 23:52:26 -04:00
Michael DeHaan 8e9344eef7 add an error when user tries to async something that can't be asynced 2012-09-30 20:06:55 -04:00
Daniel Hokka Zakrisson 8a8ffa2342 Allow task includes to work with with_items 2012-09-30 13:40:52 +02:00
Ralph Bean d25ee940c4 Close zeromq context and socket. 2012-09-28 08:22:53 -04:00
Daniel Hokka Zakrisson 4b29c2cf74 Revert pull request #1091
Automatic quoting of variables in only_if breaks existing playbooks
where entire statements are put in a variable, and other cases. See
issue #1120 for details.
2012-09-28 13:58:23 +02:00
Daniel Hokka Zakrisson 66d0acfde3 Remove assemble action plugin, fix daisychaining 2012-09-27 18:30:08 +02:00
Aleksej Romanov 0db5ccfecb Don't use ssh-agent if password is specified. 2012-09-27 14:57:06 +07:00
Michael DeHaan 69612ba16d The very first start of 'fireball mode', which uses ansible in SSH mode to deploy a ephemeral zeromq daemon (entirely optional) that is will die after
it is no longer used.  No key signing will be required.  At this point, development use only -- NOT complete.
2012-09-26 23:51:59 -04:00
Daniel Hokka Zakrisson d181a64315 Use repr on replacements for only_if 2012-09-25 20:14:58 -04:00
Michael DeHaan df147ab921 Merge pull request #1089 from tbielawa/runner_pause
Add 'pause' action plugin and support plugins skipping the host loop.
2012-09-25 17:11:54 -07:00
Michael DeHaan f8a9541405 add __init__ to action plugins 2012-09-25 08:24:35 -04:00
Michael DeHaan 730b617186 Add init, though it's not really used. 2012-09-25 08:21:59 -04:00
Tim Bielawa 58a4d2f7b4 Add 'pause' action plugin and support plugins skipping the host loop. 2012-09-25 01:13:35 -04:00
Michael DeHaan 734db4ffe9 Merge pull request #1080 from dagwieers/prompt-only_if
Add an only_if option to vars_prompt to make prompts conditional
2012-09-24 17:42:17 -07:00
Dag Wieers 4e9a970616 Add an only_if option to vars_prompt to make prompts conditional
Sometimes you may want to allow variables through host_vars or inventory, but prompt for a value if it is not set or if the value does not conform to something specific. This option allows you to specify when you want to offer a prompt.

This patch also moves check_conditional to utils, and adds an is_unset() function which is nicer to read:

    only_if: "not is_set('${var}')"

vs

    only_if: "is_unset('${var}')"
2012-09-24 23:55:54 +02:00
Daniel Hokka Zakrisson 34f7e6ffa0 Pass module arguments as argument instead of keeping it in runner 2012-09-23 23:38:26 +02:00
Michael DeHaan f5f17e98ff Merge pull request #1065 from dhozac/varreplace-include
Allow including files through variables
2012-09-23 10:20:26 -07:00
Daniel Hokka Zakrisson 8d97bb4f8e Add an ansible_ssh_host inventory variable 2012-09-22 00:57:55 +02:00
Daniel Hokka Zakrisson cc948f339c Allow including files through variables
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
2012-09-19 17:57:17 +02:00
Michael DeHaan b8c4bb9e6e Revert "Allow including files through variables"
This reverts commit bf47bb4753.

Conflicts:

	lib/ansible/utils.py
	test/TestUtils.py
2012-09-19 10:31:23 -04:00
Daniel Hokka Zakrisson bf47bb4753 Allow including files through variables
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
2012-09-17 16:03:59 +02:00
Timothy Appnel 9d5a79f586 Made groups.groupname and group_names variables accessible in playbooks.
Also modified code that feeds the groups data structure to templates so
that it resolves groups inside of groups to hostnames.
2012-09-10 10:42:26 -04:00
Timothy Appnel 20fc6a29d3 Made groups.groupname and group_names variables accessible in playbooks. 2012-09-07 18:07:52 -04:00
willthames f456d999a9 Fix templates for non root sudo_user
When using template module, if a restrictive umask is set, the
sudo_user won't be able to read the /tmp/ansible-dir/source file
after it is copied across following _transfer_str

I wonder if this behaviour shouldn't be abstracted somehow (as
this correction also happens after put_file in the copy module too)
2012-09-07 16:35:53 +10:00
Michael DeHaan dc14681530 rename isset to is_set 2012-09-06 20:55:27 -04:00
Michael DeHaan 8621539341 Merge branch 'only_if-isset' of https://github.com/dhozac/ansible into devel 2012-09-06 20:55:11 -04:00
Michael DeHaan 8a09e1281b Fixup modularized template module 2012-09-06 19:04:27 -04:00
Michael DeHaan 633e513a65 Modular server-side actions (squash merge) 2012-09-06 18:57:04 -04:00
Michael DeHaan 6fb1884a03 Add __init__'s to git 2012-09-06 18:43:28 -04:00
Daniel Hokka Zakrisson 14db2fa376 Add an isset("$var") function to only_if 2012-09-05 23:18:47 +02:00
Daniel Hokka Zakrisson 7a201dbb2e Keep result pristine for ignore_errors 2012-09-04 22:40:07 +02:00
Michael DeHaan 3de4e45741 Move plugin directories 2012-08-21 20:32:21 -04:00
Michael DeHaan bf92a9e4e0 Store invocation differently from an API perspective, but hide in callbacks 2012-08-20 20:41:53 -04:00
Grzegorz Nosek 73b0dd4ac0 Enable UTF-8 commands via the raw module
Paramiko does not allow Unicode strings as parameters, so encode
the command to UTF-8.

Test case:

ansible localhost -m raw -a 'echo ą'

(also tested on local and ssh transports without problems)
2012-08-20 18:26:21 -04:00
Michael DeHaan 3cbf885079 Change the order the setup cache is used to update things, such that the example/playbooks/conditional_part1.yml file
works as advertised
2012-08-18 19:49:49 -04:00
Michael DeHaan 7fd4051857 make connection types pluggable 2012-08-18 10:52:24 -04:00
Michael DeHaan e13c33bb86 Moved Runner's ReturnData class to a seperate file. 2012-08-18 09:30:33 -04:00
Michael DeHaan f07e55c568 Adds 'delegate_to' as a task option which can be used to signal load balancers and outage windows. 2012-08-18 08:46:51 -04:00
Michael DeHaan fe923b9394 Adaptation of fix in #891 to avoid cut on only one md5 call. 2012-08-16 22:45:43 -04:00
Michael DeHaan eee2d1afd0 If ANSIBLE_KEEP_REMOTE_FILES=1 is set as an environment file, remote files will not be deleted, which is useful only for development debugging purposes. 2012-08-16 21:34:55 -04:00
Michael DeHaan de221e6b4b Add vars to host_vars to prevent some suprises 2012-08-14 20:35:01 -04:00