Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've created a set of nifty set of Makefiles for repeating the steps to provision and maintain many AWS clusters.

The benefits of make have been:

  • the bulk of the execution are various shell commands These are clearly specified and easy to maintain within make.
  • the whole process fails if any individual step fails (unlike bash)
  • I can bake parameterized commands into make recipes (with hackery)
  • I can specify dependencies to these commands (with hackery)

However, through much of this I've been feeling like make is a poor match for the task. Parameterized commands are a terrible hack implemented by calling make calling itself again with new parameters. Conditional execution is horrible in make. Simple tasks like if CHECK_SERVER_STARTED(params) then START_SERVER(params); COLLECT_DATA_FILES(params) if server_was_stopped_at_the_start(params) then STOP_SERVER(params);

Also, dependency tracking using files is a terrible idea.

There must be a better way. Is there a good language I can have:

  • shell commands trivially run (ideally part of the language) (i.e. not Python, Perl)
  • conditionals, branching, failure-case handling, etc... are all built in
  • loops
  • local variables (or at least something like a stack, so that I can call a function and not have thing piss all over my global variables).
share|improve this question

closed as primarily opinion-based by Zoredache, EEAA, Falcon Momot, MadHatter, SvW Mar 29 at 9:07

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Configuration Managment. Puppet, Cheft, Salt, Ansible, etc... –  Zoredache Mar 29 at 1:11
add comment

1 Answer 1

This hurts to read... Sooo complex!

Yes, of course there is a better way. Part of being a pro is keeping abreast of changes in technology. Configuration management is what you're looking for, and has been around for a number of years. Most of your problems have been solved.

share|improve this answer
    
Thank you. Clearly I have come to the right place. –  user14645 Mar 30 at 5:09
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.