Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

dnsimple (30) Versions 2.2.0

Provides Chef Resource for automating DNS configuration with DNSimple

Policyfile
Berkshelf
Knife
cookbook 'dnsimple', '= 2.2.0', :supermarket
cookbook 'dnsimple', '= 2.2.0'
knife supermarket install dnsimple
knife supermarket download dnsimple
README
Dependencies
Changelog
Quality 100%

Description

A chef resource for automated DNS configuration via the dnsimple API.

Build Status
Build Status

DEPRECATION WARNING

The 3.x series of this cookbook will be Chef 13.9+ and will change the properites of the record and certificate resources! See below for a migration guide:

If you used the dnsimple_record resource, you'll want to do the following to migrate:

  • Rename the name property to record_name
  • For every record_name property, if this record was meant to be on the apex (the naked domain) then remove it entirely

If you used the dnsimple_certificate resource, you'll want to do the following to migrate:

  • Rename certificate_common_name properties to common_name
  • Update your expires_on to be a parsable date string (see examples below)
  • Add an install_path if you have not

Requirements

Attributes

  • None

Resources/Providers

dnsimple_record

Manage a DNS record through the dnsimple API. This resource uses the
dnsimple Ruby library to connect and use
the dnsimple API. This resource also exposes a ChefSpec matcher for you to do
unit testing as well.

Actions:

Action Description Default
create Create the record. Yes
update Update the record.
destroy Destroy the record.

Parameter Attributes:

The type of record can be one of the following: A, CNAME, ALIAS, MX,
SPF, URL, TXT, NS, SRV, NAPTR, PTR, AAA, SSHFP, or HFINO.

Parameter Description Required Default
domain Domain to manage true
name Name of the record Apex of the domain
type Type of DNS record true
content String/Array content of records true
ttl Time to live 3600
priority Priorty of record
regions Specific regions for this record
token DNSimple API token

Note: If you do not provide the name parameter, it will be assumed from the
resource name, which cannot be blank. If you want to create multiple record
types on the apex then you need to name each resource separately, but keep the
name an empty string.

Regional Records: Only certain plan types have regional records so it is
blank by default. If you do not have this feature available it will return
an error.

Examples

Note that these examples assume you have obtained an account level access token
which is documented above (see Requirements). We're also assuming you're securely
storing your API keys in Chef Vault but
it is not a requirement.

dnsimple_record 'fooserver' do
  domain 'foo.com'
  type 'A'
  content '1.2.3.4'
  ttl 3600
  access_token chef_vault_item('secrets', 'dnsimple_token')
  action :create
end

dnsimple_record 'create a CNAME record for a Google Apps site calendar' do
  name 'calendar'
  content 'ghs.google.com'
  type 'CNAME'
  domain 'example.com'
  access_token chef_vault_item('secrets', 'dnsimple_token')
  action :create
end

dnsimple_record "create a A record with multiple content values" do
  name     'servers'
  content  ['1.1.1.1', '2.2.2.2']
  type     'A'
  domain   'example.com'
  access_token chef_vault_item('secrets', 'dnsimple_token')
  action   :create
end

# Note: This only works with certain accounts, see the note above for
# regional records! The Chef run will fail otherwise.
dnsimple_record "create an A record in Tokyo only" do
  name     'myserverinjapan'
  content  '2.2.2.2'
  type     'A'
  domain   'example.com'
  regions  ['tko']
  access_token chef_vault_item('secrets', 'dnsimple_token')
  action   :create
end

dnsimple_certificate

Download and install a certificate. Currently this only supports basic matched
.crt & .key files. We would like to expand this to support all formats
including java keystores. PRs are welcome!

This resource uses the dnsimple Ruby
library
to connect and use the dnsimple
API. This resource also exposes a ChefSpec matcher for you to do unit testing
as well.

Actions:

Action Description Default
install Install the crt & key Yes

Parameter Attributes:

Parameter Description Required Default
install_path where the crt & key are installed yes
certificate_common_name name of the files yes
domain the main domain name on the crt yes
mode files mode no 0600
owner files owner no root
group files group no root

Examples

dnsimple_certificate '/etc/apache2/ssl' do
  certificate_common_name 'www.dnsimple.xyz'
  domain 'dnsimple.xyz'
  access_token chef_vault_item('secrets', 'dnsimple_token')
  mode '0755'
  owner 'web_admin'
  group 'web_admin'
end

Usage

Add the dnsimple cookbook to your cookbook's metadata and it will automatically
install the dnsimple gem and make the dnsimple_record resource available.

Testing

See TESTING.md

Contributing

See CONTRIBUTING.md

License and Authors

Copyright:: 2014-2018 DNSimple Corp

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

generic_dns Applicable Versions

Change Log

v2.2.0 (2018-08-07)

Full Changelog

Merged pull requests:

v2.1.1 (2018-03-21)

Full Changelog

Fixed bugs:

  • Running integration tests with custom domain fails #52

Merged pull requests:

v2.1.0 (2017-06-26)

Full Changelog

Merged pull requests:

v2.0.1 (2017-05-18)

Full Changelog

Fixed bugs:

  • Re-release 2.0.0 with updated Stove #47

v2.0.0 (2017-04-24)

Full Changelog

Fixed bugs:

Closed issues:

  • Chef 11 needs compat resources #45

Merged pull requests:

v1.3.4 (2016-09-30)

Full Changelog

Merged pull requests:

v1.3.3 (2016-06-27)

Full Changelog

Fixed bugs:

Merged pull requests:

v1.3.2 (2016-06-24)

Full Changelog

Merged pull requests:

v1.3.1 (2016-06-10)

Full Changelog

Merged pull requests:

  • Update documentation with a correction for the token usage #35 (martinisoft)

v1.3.0 (2016-06-10)

Full Changelog

Fixed bugs:

  • DNSimple API authentication #24

Merged pull requests:

v1.2.0 (2016-06-10)

Fixed bugs:

  • Fix ChefSpec Deprecation Warning #25
  • centos-65 requires patch utility due to nokogiri, only build-essential ~> 2.0.4 installs patch #21
  • Fix converging in modern chef 11 and chef 12 #32 (onlyhavecans)
  • Cleanup testing #31 (martinisoft)

Closed issues:

  • Use Fog DNSimple API Auth #27
  • Ubuntu 14.04 package requirement #23
  • Should have option to gracefully handle existing A record for CNAME create #18
  • Release a new version to Chef Community site #11
  • Add Test Kitchen #10
  • Cookbook removes undesired records #9
  • Should depend on 'build-essential' #7
  • LWRP should use load_current_resource #2

Merged pull requests:

  • Update build status and metadata #30 (martinisoft)
  • Unpin build-essential, blocks many popular cookbooks from use #22 (martinb3)
  • Support creating record with multiple content values #20 (josacar)
  • Use load_current_resource in lwrp #15 (josacar)
  • Integrate Test Kitchen #14 (dje)
  • Configure attributes for ohai to workaround empty node.platform_family #13 (josacar)
  • Avoid removing records with different type on create #12 (josacar)
  • Build Essential Dependancy #8 (ichilton)
  • add platform support for rhel platforms and expand coverage for more debian platforms #6 (mattkasa)
  • Fix missing pkg dependencies, update to chef_gem; add name to metadata. #5 (mdxp)
  • Improvements to LWRP and Documentation #1 (jtimberman)

* This Change Log was automatically generated by github_changelog_generator

Collaborator Number Metric
            

2.2.0 passed this metric

Contributing File Metric
            

2.2.0 passed this metric

Foodcritic Metric
            

2.2.0 passed this metric

No Binaries Metric
            

2.2.0 passed this metric

Testing File Metric
            

2.2.0 passed this metric

Version Tag Metric
            

2.2.0 passed this metric