Adds resources for managing DNS zones and records in Rackspace DNS
A Rackspace Cloud account is required to use this cookbook. You will need a valid username and API key to authenticate into your account.
You can sign up for an account here.
The following dependencies are installed via rsdns::default.
- libxml2-dev
- libxslt-dev
It is highly recommended you store your Rackspace Cloud authentication
credentials in an encrypted data bag. This cookbook looks for an encrypted
data bag rackspace
and the cloud
data bag item. The item should look like
the following.
{
"id": "cloud",
"username": "your_rackspace_username",
"apikey": "your_rackspace_api_key",
"region": "[us|uk]"
}
region
should be set to us
or uk
, depending on where your account was
created. If you signed up for your Rackspace Cloud account through
rackspace.com, then you have a us
account. If you signed up through
rackspace.co.uk, then you have a uk
account. The default if neither is
supplied is us
.
Alternatively, you can set the credentials through attributes.
default[:rsdns][:rackspace_username] = 'your_rackspace_username'
default[:rsdns][:rackspace_api_key] = 'your_rackspace_api_key'
default[:rsdns][:rackspace_auth_region] = '[us|uk]'
This is an example of creating an A record for the host via recipe. It assumes
that the domain for node[:domain]
exists as a domain on your Rackspace Cloud
account. See the Zone resource for creating a zone via recipe.
rsdns_record node[:fqdn] do
domain node[:domain]
value node[:ipaddress]
type 'A'
ttl 300
end
The only required attributes are domain
and value
. The available attributes
are:
name
- Defaults to the name of the resourcedomain
- Requiredvalue
- Required (Example: IP Address an A record should resolve to)type
- Default 'A'ttl
- Default '300' (String or Integer is fine)priority
- Defaultnil
, but useful with MX and TXT records
This is an example of creating a new domain (also known as a zone) via recipe.
rsdns_zone node[:domain] do
email 'foo@bar.com'
ttl 300
end
The only required attribute is email
. ttl
defaults to 300.
default[:rsdns][:rackspace_username] = 'your_rackspace_username'
default[:rsdns][:rackspace_api_key] = 'your_rackspace_api_key'
default[:rsdns][:rackspace_auth_region] = '[us|uk]'
Installs the necessary packages and ruby gems.