designate

Designate is a simple Ruby wrapper for the Zerigo API v1.1 specification.

Usage

d = Designate::Client.new("[email protected]", "30f1b76a010d062c22b07bda66c1d9f0")

Get all zones:

d.zones

Create a new zone:

d.create_zone("example.com")

Find a specific zone:

d.find_zone_by_id(12345)
d.find_zone_by_domain("example.com")

Get all zone templates:

d.templates

Find a template:

d.find_template(12345)

Get all hosts in a zone:

d.find_zone_by_domain("example.com").hosts

Create host:

d.find_zone_by_domain("example.com").create_host("MX", "mx1.example.com.")

The next features have only been tested in conjunction with capify-ec2. I recommend further testing before adding them to your projects. Also works via Capistrano, using zerigo.yml:

:username: "username"
:key: "API Key"
:domain: "example.com"

Within your project:
application = "test"
cap <server_name> zerigo:first_time

retrieves the first part of the <hostname> from the remote machine and creates:
CNAME, <hostname>.example.com => actual DNS name, as specified in your server address.
CNAME, <hostname>-test.example.com => web.example.com

Nothing will be created if the DNS names are already in use.
If the domain does not exist, it will be created.

Copyright © 2010 James Miller. See LICENSE for details.