Hyrb
It's for bootstrapping projects. There's a lot left to do.
Setup
Prerequisites
- Required: ruby 2.0
- Optional: ansible, vagrant
Installation
As a CLI utility:
$ gem install hyrb
This will make the 'hyrb' command available to your shell.
Configuration
All optional, should work without any additional setup.
As you use it, it will prompt you for various pieces of information that it needs. This will all be stored in a ~/.hyfn
directory, which it will create (this location is overridable via the HYFN_CONFIG_PATH
env variable.)
Most the files in here can safely be edited by hand as well, with the exception of the cache
directory, which gets overwritten a lot.
Usage
List available tasks with:
$ hyrb
Then go crazy.
Hacking
Adding New Tasks
- Create a new task module in the
lib/hyrb/tasks
dir. Use one of the existing ones as a template. - Create a new command class in the
lib/hyrb/commands
dir. Again, use an existing command as a template. Add a method for every task you want to be callable via the CLI. - Require and register your subommand in
lib/hyrb/commands/main.rb
Todo
- Add teams to ansible
- Require dependencies (esp. fog) on-demand only.
- Save environments correctly on project save.
- Improve flavor selection stuff for Rackspace
- Deal with rackspace pubkeys
- Make a DSL for this
- Automatically create Thor commands from tasks
- This will allow lazy loading as well
- Add coverage for at least the locals parts (config, etc)
- Refactor model attributes to support documentation, constraints, etc
- Allow a couple kinds of defaults
- Within a model, so that like, server_name and repo_name will fall back to name if not defined.
- For a project environment, so that an environment will use the project default for certain attributes if they're not defined on the current environment.
- Can we dump the default list of users into the project file and let users trim it down?
- Break project setup into two steps, first to prompt for everything needed in the config file, then let the user edit it, then create everything.
- Allow a couple kinds of defaults
- Use vagrant-hostmanager.
- Thor task to install pre-reqs