- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# dnsimple – Interface with dnsimple.com (a DNS hosting service)

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Status

## Synopsis

- Manages domains and records via the DNSimple API, see the docs: http://developer.dnsimple.com/.

## Requirements

The below requirements are needed on the host that executes this module.

- dnsimple >= 1.0.0

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
account_api_token string |  | Account API token. See account_email for more information.
account_email string |  | Account email. If omitted, the environment variables `DNSIMPLE_EMAIL` and `DNSIMPLE_API_TOKEN` will be looked for. If those aren't found, a `.dnsimple` file will be looked for, see: https://github.com/mikemaccana/dnsimple-python#getting-started.
domain string |  | Domain to work with. Can be the domain name (e.g. "mydomain.com") or the numeric ID of the domain in DNSimple. If omitted, a list of domains will be returned. If domain is present but the domain doesn't exist, it will be created.
priority integer |  | Record priority.
record string |  | Record to add, if blank a record for the domain will be created, supports the wildcard (*).
record_ids list |  | List of records to ensure they either exist or do not exist.
solo boolean | Choices: no ← yes | Whether the record should be the only one for that record type and record name. Only use with `state` is set to `present` on a record.
state string | Choices: present ← absent | whether the record should exist or not.
ttl integer | Default: 3600 | The TTL to give the new record in seconds.
type string | Choices: A ALIAS CNAME MX SPF URL TXT NS SRV NAPTR PTR AAAA SSHFP HINFO POOL | The type of DNS record to create.
value string |  | Record value. Must be specified when trying to ensure a record exists.

## Notes

Note

- DNSimple API v1 is deprecated. Please install dnsimple-python>=1.0.0 which uses v2 API.

## Examples

    - name: Authenticate using email and API token and fetch all domains
      dnsimple:
        account_email: test@example.com
        account_api_token: dummyapitoken
      delegate_to: localhost

    - name: Fetch my.com domain records
      dnsimple:
        domain: my.com
        state: present
      delegate_to: localhost
      register: records

    - name: Delete a domain
      dnsimple:
        domain: my.com
        state: absent
      delegate_to: localhost

    - name: Create a test.my.com A record to point to 127.0.0.1
      dnsimple:
        domain: my.com
        record: test
        type: A
        value: 127.0.0.1
      delegate_to: localhost
      register: record

    - name: Delete record using record_ids
      dnsimple:
        domain: my.com
        record_ids: '{{ record["id"] }}'
        state: absent
      delegate_to: localhost

    - name: Create a my.com CNAME record to example.com
      dnsimple:
        domain: my.com
        record: ''
        type: CNAME
        value: example.com
        state: present
      delegate_to: localhost

    - name: change TTL value for a record
      dnsimple:
        domain: my.com
        record: ''
        type: CNAME
        value: example.com
        ttl: 600
        state: present
      delegate_to: localhost

    - name: Delete the record
      dnsimple:
        domain: my.com
        record: ''
        type: CNAME
        value: example.com
        state: absent
      delegate_to: localhost

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Alex Coomans (@drcapulet)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.