DynamicServerManager
Simple, high-level API for managing cloud servers across multiple providers from within Elixir.
This doesn't try to be everything, but instead provides two basic behaviours, for which additional providers can be added:
Server:
- Create based on snapshot
- Destroy
- Query for basic information
DNS:
- Create/destroy A records for configured domains
Installation
First, add to your mix.exs dependencies:
def deps do
[{:dynamic_server_manager, "~> 0.0.1"}]
endThen, update your dependencies:
$ mix deps.getConfiguration
See the sample configuration
Usage
See the example usage
Currently supported providers
Server:
DNS:
Writing new providers
They are based on the behaviours as defined in the following modules:
- Server: DynamicServerManager.Server
- DNS: DynamicServerManager.Dns
Hopefully between that and referencing the existing plugins you'll get the idea.
TODO
- Better documentation (maybe, someday...)
- Better plugin label/module mapping, possibly via registration