Crazy Aegir Ideas 1: Aegir as Site Builder using Drush Make Generator or Aegir Hostmaster module derived from DrushMake.me
ok, here we go, beginners luck, fools rush in where angels fear to dread, and all that
have been wondering a lot about Aegir centered site network design and building, site design
came across the DrushMake.me codebase and started using it to create some useful (educational?) make files and play with them https://github.com/rupl/drush_make_generator
i.e. this is a D6 Drush Make Generator Select All make file http://drushmake.me/file.php?token=752b2d27b49f (warning ckeditor and blueprint theme choke make, comment out)
then I thought, gee, imagine if this was a Hostmaster module ?
Use Case: Aegir as a Site Builder
: Aegir client wants to create a Drupal distro prototype, and they dont know about Drush, GIT or much of everything (yours truley ;}) So, fortunately, they have a handy module within Aegir called Drush Make Generator (thanks to rupl at FourKitchens) which allows them to create a make make file, which they can then reference via Create Platform to create a new Platform, and hence a new site and bingo, they have a new distro to work with, without ever seeing the command line For many point and click sitebuilders, this is heaven, and is one of the selling points of Wordpress i.e easy to download extensions within the web ui
see my Feature Request for http://drushmake.me/
https://github.com/rupl/drush_make_generator/issues/13
Aegir integration: a hostmaster module?
hey, this is great ! have you considered making this a module for Aegir's hostmaster profile ? version 1.0 of Aegir is released and there are some great possibilities http://community.aegirproject.org/developing http://community.aegirproject.org/node/33 Aegir is a great tool for managing distro's, but imagine the power of being able to actually create a distro from within Aegir? thats recursive bliss -N
also, rupl has ideas of extending Drush Make Generator
https://github.com/rupl/drush_make_generator/issues/
Feature: suggested makefiles
High-level list of common websites, like e-commerce, social features, gallery, portfolio. Picking an option should populate the generate form and allow for further tweaking
https://github.com/rupl/drush_make_generator/issues/5
ps: yes, I know this is a dangerous idea/module from a management perspective, all sorts of frankensteins are possible, its a bit like GMO, lots of dangerous freakazoids with unknown consequences
cheers
-N
#1
So, first off, makefiles generate platforms, not sites. All they do (and this is no small feat) is download a bunch of modules, themes, profiles, libraries, etc. and put them where you want them (under sites/all/modules/contrib, or profiles/openatrium/modules/features) Now, you can build sites based on profiles after that, but most well-built profiles come with their own makefiles to gather their dependencies. It's worth noting this current limitation of d.o's packaging system.
Second, I'm not sure what you get from such a makefile generator, as you still have to choose some subset from among the 1000's of modules out there to populate the form. You might instead just build your own platform with the modules you think worthwhile, then allow clients to build sites on that. Also worth noting is an inter-site security issue that remains to be resolved.
Finally, Drush, Git and makefiles are really tools worth appropriating. Makefiles themselves use a fairly simple declarative .info-style syntax; i.e., there are no complicated control- or data-structures as in PHP or JS development. There's already a
drush generate-makefilecommand that will build a makefile for you from any existing site.Without a revision control system, such as Git, development becomes a nightmare. If you make a change that breaks something, how do you roll it back? Either you have to recall any changes you made and reverse them by hand (difficult and error-prone), or you kept a backup copy of the file you changed and revert to that (in which case you're doing manually what Git does, without all the other benefits.)
Building distros is a complicated undertaking, especially if you intend to support it for any length of time. It's challenging, even with a fair mastery of the tools available to make it feasible: the Features stack (context, strongarm, ctools, etc.), makefiles, Profiler, Drush, Aegir, etc. That said, it's highly engaging and satisfying work, but proficiency in the tools of the craft are essential.
#2
thanks for the feedback, will check the issues you mention and i agree with your views
some other attempts are http://betterwebshop.com/make and some other modules http://drupal.org/project/drush_make_ui http://drupal.org/project/drush_make_builder
perhaps there should be higher abstraction than .make
btw, i was thinking the .make would be placed in the folder that Aegir can access when making a new platform, and then it would spawn a single site off that .make
as I said, its a crazy idea, not exactly sure what or how, but I think there is something in it
#3
ref comment #1
Summary
I think the idea is a good one but it does require the "inter-site security issue that remains to be resolved" if it's a feature intended to be available to clients and if it's just for the host to use then calls for getting someone to code a whole aegir module for this will probably be answered by ppl providing links to the likes of http://drushmake.me and such sites!#4
thanks for the feedback.
Have a look at whats happening with OpenPublic and the Apps feature... Apps are Kit Compliant Features that are installable within OpenPublic http://drupal.org/project/kit http://www.agileapproach.com/blog-entry/apps-distributions-ready-get-sta...
now, within Aegir, imagine being able to select groups of modules via the Drush Make Generator tool to create a platform
see how Open Outreach is based on a suite of Debut Features ... http://drupal.org/project/debut
will work on this more during the next 8 weeks over the summer