feature idea: modules forge plugin setup for non-core modules

Hi again

I like ansible has a lot of modules in the core.

On the other hand, the core becomes bigger and messier…maybe “we” should think about a way for a “plug-in” functionality for modules. So the core can stay clean and small, but users can plug-in the modules they like and need:

I am thinking about a “ansible way” doing that like a command line app.

ansible-module search
ansible-module install
ansible-module remove
ansible-module update

Even we can think about a core module for ansible-module handling: e.g.

  • name: install all required ansible modules
    local_action: module name={{item}} state=installed
    with_items:
  • foo
  • bar

the location where the modules are downloaded and extracted from could look like per default:

http://forge.ansibleworks.com//-.tar.gz

or specify a own (maybe private) repo:

local_action: module name={{item}} state=installed repo=http://private

so the modules would be downloaded and extracted from

http://private//-.tar.gz

Thanks for any feedback.

Regards
René

Nope, there’s no need for this.

You can already have your own directories of modules, and the modules in core are meant to be there.

The batteries included philosophy is GREAT for contribution, they don’t take up space, they are already well organized, and are only transferred to remote systems as needed.

If you’re talking roles, that’s different, and this is the purpose of the Galaxy project that we are releasing this November (knock on wood).

It should be possible to include a library path in the roles dir, but we strongly will encourage contribution of modules to core – I don’t like the concept of downloaded content containing arbitrary code and it makes too many different points for people to track and contribute to.

–Michael

I might be misunderstanding, but isn't this the opposite of what you
said in https://groups.google.com/d/msg/ansible-project/UVg0ZS7mT9o/LcjQCiYGpfAJ
?

I can't say I'm a fan of the solution proposed by René, which seems
too heavy for Ansible especially since there's already library/,
filter_plugins/, lookup_plugins/, etc for people to drop things into.
However, I do think it'd be nice to have a central source for
modules/plugins that don't live up to the standards for being included
in core, wouldn't serve a wide-enough audience, and/or are rejected
for other reasons (incompatible licenses?).

When it makes sense, we want modules in core. I don’t want the default to be “we’re just going to put these on the tubes”, because that will result in modules that are less maintained.

However, if a module is not going to be widely used by enough people to help maintain it, we don’t want it in core.

Those will be able to go into Galaxy.

I wasn't aware Galaxy would be able to be used for modules as well. Cool!

At least in this first cut, a role can contain some modules that are available when it is included.

-- Michael