# fortios_system_dns_database – Configure DNS databases in Fortinet’s FortiOS and FortiGate

New in version 2.9.

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify system feature and dns_database category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.5

## Requirements

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

- fortiosapi>=0.9.8

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
host string |  | FortiOS or FortiGate IP address.

https
boolean

Choices:
- no
- yes ←

Indicates if the requests towards FortiGate must use HTTPS protocol.

password string | Default: "" | FortiOS or FortiGate password.

ssl_verify
boolean

Choices:
- no
- yes ←

Ensures FortiGate certificate must be verified by a proper CA.

state
string / required

Choices:
- present
- absent

Indicates whether to create or remove the object.

system_dns_database dictionary | Default: null | Configure DNS databases.
| allow_transfer string |  | DNS zone transfer IP address list.

authoritative
string

Choices:
- enable
- disable

Enable/disable authoritative zone.

| contact string |  | Email address of the administrator for this zone. You can specify only the username (e.g. admin) or full email address (e.g. admin@test.com) When using a simple username, the domain of the email will be this zone.
| dns_entry list |  | DNS entry.
|  | canonical_name string |  | Canonical name of the host.
|  | hostname string |  | Name of the host.
|  | id integer / required |  | DNS entry ID.
|  | ip string |  | IPv4 address of the host.
|  | ipv6 string |  | IPv6 address of the host.
|  | preference integer |  | DNS entry preference, 0 is the highest preference (0 - 65535)

status
string

Choices:
- enable
- disable

Enable/disable resource record status.

|  | ttl integer |  | Time-to-live for this entry (0 to 2147483647 sec).

type
string

Choices:
- A
- NS
- CNAME
- MX
- AAAA
- PTR
- PTR_V6

Resource record type.

| domain string |  | Domain name.
| forwarder string |  | DNS zone forwarder IP address list.
| ip_master string |  | IP address of master DNS server. Entries in this master DNS server and imported into the DNS zone.
| name string / required |  | Zone name.
| primary_name string |  | Domain name of the default DNS server for this zone.
| source_ip string |  | Source IP for forwarding to DNS server.

status
string

Choices:
- enable
- disable

Enable/disable this DNS zone.

| ttl integer |  | Default time-to-live value for the entries of this DNS zone (0 - 2147483647 sec).

type
string

Choices:
- master
- slave

Zone type (master to manage entries directly, slave to import entries from other zones).

view
string

Choices:
- shadow
- public

Zone view (public to serve public clients, shadow to serve internal clients).

username string |  | FortiOS or FortiGate username.
vdom string | Default: "root" | Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit.

## Notes

Note

- Requires fortiosapi library developed by Fortinet
- Run as a local_action in your playbook

## Examples

    - hosts: localhost
      vars:
       host: "192.168.122.40"
       username: "admin"
       password: ""
       vdom: "root"
       ssl_verify: "False"
      tasks:
      - name: Configure DNS databases.
        fortios_system_dns_database:
          host:  "{{ host }}"
          username: "{{ username }}"
          password: "{{ password }}"
          vdom:  "{{ vdom }}"
          https: "False"
          state: "present"
          system_dns_database:
            allow_transfer: "<your_own_value>"
            authoritative: "enable"
            contact: "<your_own_value>"
            dns_entry:
             -
                canonical_name: "<your_own_value>"
                hostname: "myhostname"
                id:  "9"
                ip: "<your_own_value>"
                ipv6: "<your_own_value>"
                preference: "12"
                status: "enable"
                ttl: "14"
                type: "A"
            domain: "<your_own_value>"
            forwarder: "<your_own_value>"
            ip_master: "<your_own_value>"
            name: "default_name_19"
            primary_name: "<your_own_value>"
            source_ip: "84.230.14.43"
            status: "enable"
            ttl: "23"
            type: "master"
            view: "shadow"

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
build string | always | Build number of the fortigate image Sample: 1547
http_method string | always | Last method used to provision the content into FortiGate Sample: PUT
http_status string | always | Last result given by FortiGate on last operation applied Sample: 200
mkey string | success | Master key (id) used in the last call to FortiGate Sample: id
name string | always | Name of the table used to fulfill the request Sample: urlfilter
path string | always | Path of the table used to fulfill the request Sample: webfilter
revision string | always | Internal revision number Sample: 17.0.2.10658
serial string | always | Serial number of the unit Sample: FGVMEVYYQT3AB5352
status string | always | Indication of the operation's result Sample: success
vdom string | always | Virtual domain used Sample: root
version string | always | Version of the FortiGate Sample: v5.6.3

## Status

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

### Authors

- Miguel Angel Munoz (@mamunozgonzalez)
- Nicolas Thomas (@thomnico)

Hint

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