infochimps-labs / ironfan

Chef orchestration layer -- your system diagram come to life. Provision EC2, OpenStack or Vagrant without changes to cookbooks or configuration
http://infochimps.com
Other
501 stars 103 forks source link

Support for user configuration file #192

Open fractaloop opened 11 years ago

fractaloop commented 11 years ago

As the Ironfan community grows, people will want to tweak little things for their environment. e.g. I prefer tmux over screen when running knife cluster ssh

It would be nice if Ironfan would load a global configuration defaults from from ~/.ironfan/

Possible features:


Edited: Directory based ~/.ironfan/ sounds great.

UncleTallest commented 11 years ago

I recommend a .ironfan directory where we can place files related to the various parts of Ironfan's configuration. Simply placing everything in one .ironfanrc file may seem nice on the surface; but will require some major refactoring down the road when/if Ironfan's possible configuration options outgrow a single-file configuration mechanism. It makes sense to keep that from coming to pass if we can help it at all.

temujin9 commented 11 years ago

Caveat:

Doing this right involves producing another layer above the cluster layer (called Environment, Universe, or something else clever), which is then resolved down the stack. There is strong chance that this runs into one or more hidden bugs with the resolution "framework", making it less simple than first appearances would indicate.

That all said, multiple files should be easy to do, since it's all ruby under the hood.

UncleTallest commented 11 years ago

Environment is already at least partially spoken for within chef itself; universe would be a good bet in my mind. I can't think of anything within chef that would stomp all over it.

temujin9 commented 11 years ago

Whup, yep. I knew there was a reason I had a second option handy . . . One of the hardest problems in programming with Chef: avoiding nomenclature collisions, without getting completely obtuse.

UncleTallest commented 11 years ago

I might be convinced to look further at this one; gives me a valid excuse to delve deeper into the codebase than I have to date.

lyrixx commented 11 years ago

:+1: I do not use screen anymore. So now, I have a screen in a tmux, which is not very convenient.

temujin9 commented 11 years ago

@lyrixx - you can pass tmux as an argument, like so: knife cluster ssh [target] tmux. I agree that having that configurable would be better.

lyrixx commented 11 years ago

Oh. Thanks. I did not see that ;)