RexOps / Rex

Rex, the friendly automation framework
https://www.rexify.org
716 stars 223 forks source link

ideas for the 2.x version #267

Closed krimdomu closed 9 years ago

krimdomu commented 10 years ago

Ideas

This is just an issue to track all the ideas what can be made different with the 2.x version.

These ideas can contain everything

!! This is just brain storming. !! Some of these points here may be implemented while others will not be implemented.

The first release of 2.x is planed at sometime in 2015. This will not make the 0.x (soon 1.x) version obsolete. The 1.x version will be maintained for about 4 years (~2017, this is the end of life of rhel/centos 5)

krimdomu commented 10 years ago

Perl Modules

Perl Modules that might be of interest.

krimdomu commented 10 years ago

Goals

chenryn commented 10 years ago

Moose is large, Moops is unstable and require perl 5.14. How about perl5i?

krimdomu commented 10 years ago

Hi Chenryn,

yes this is true. And also i don't know how long (for example) Moops will exists/maintained if some of the others (for example p5-Mop-Redux) will get into the core.

Added perl5i to the perl modules.

niumang commented 10 years ago

try Momo:

https://metacpan.org/pod/release/TOMORROW/Momo-1.0/Introduce.pod

james 已使用 Sparrow (http://www.sparrowmailapp.com/?sig)

在 2013年11月3日 星期日,下午9:07,饶琛琳 写道:

Moose is large, Moops is unstable and require perl 5.14. How about perl5i?

— Reply to this email directly or view it on GitHub (https://github.com/krimdomu/Rex/issues/267#issuecomment-27644260).

krimdomu commented 10 years ago

Hi niumang,

thanks for the link. Looks interesting. I've added it to the list.

krimdomu commented 10 years ago

removed perl 5.8.8 dependency in goals. Because it is always possible to install Rex on a machine with a newer perl version (for example on a rhel 6 machine). The possibility to administrate older servers does not affect this.

chenryn commented 10 years ago

Goals:

smith153 commented 10 years ago

Yes, I second webui.

sbertrang commented 10 years ago

Keeping the dependency list small seems highly desirable to me. Simplicity comes next from my point of view.

One idea would be to use Mojolicious as one powerful toolset which comes with a simple object system implementation with very little magic. Apart from that it would provide a good foundation for a webui among other things.

Another concern with regards to dependencies is compatibility and how many platforms can be supported - especially Windows comes to mind here.

krimdomu commented 10 years ago

Architecture

We need an architecture where we can replace each layer with new (or other) code without affecting other layers.

Connection Handling

We need to have multiple connection methods (SSH, Rex Agent over SSH (like rsync), zeromq, ...).

State Handling

We need to have a central state handling, so that we can query the resources (and build dependencies on resources) from other systems.

Resources

Resources exists of a resource function (like pkg()) and at least one provider. A provider provides the ability to execute the resource for a given "thing". For example a package provider for "apt", "yum", "zypper", "cpanm", ...

Reporting

All resources should be monitored and generate reports for the changes they have done. The reporting interface must be extendable. So that it is possible to connect the reporting to any system.

jmrenouard commented 10 years ago

What about the execellent Homer package ? it is just enougth Perl and no dependancies ... http://search.cpan.org/~idoperel/Homer-1.000000/lib/Homer.pm

krimdomu commented 10 years ago

Error Message

The error messages needs to be better understandable.

Some libs that may help:

reneeb commented 10 years ago

I'd like to have a pluggable logger, so that one can use Log::Log4perl or Log::Handler or sth else...

ferki commented 9 years ago

I think I'll move this issue to the wiki :)

ferki commented 9 years ago

Thanks everyone for the suggestions and ideas so far, you're awesome! :) This discussion has been converted to a wiki page.