Initial commit of NSD ansible role
Change-Id: I97c6455f2513604b86156017b5b7b1d769e7bbc0
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml
new file mode 100644
index 0000000..e389b8f
--- /dev/null
+++ b/molecule/default/converge.yml
@@ -0,0 +1,28 @@
+---
+# nsd molecule/default/verify.yml
+#
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Converge
+ hosts: all
+ vars:
+ dns_zones:
+ example.com:
+ serial: 20201102
+ ip_range: 192.168.1.1/24
+ ns:
+ - gw.example.com.
+ a:
+ gw: 192.168.1.1
+ host1: 192.168.1.2
+ host2: 192.168.1.3
+ printer: 192.168.1.4
+ cname:
+ lpr: printer.example.com.
+ srv: {}
+ txt: {}
+ tasks:
+ - name: "Include nsd"
+ include_role:
+ name: "nsd"
diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
new file mode 100644
index 0000000..f96dd10
--- /dev/null
+++ b/molecule/default/molecule.yml
@@ -0,0 +1,33 @@
+---
+# nsd molecule/default/molecule.yml
+#
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+dependency:
+ name: galaxy
+driver:
+ name: docker
+platforms:
+ - name: "ubuntu-18.04-priv"
+ image: "quay.io/paulfantom/molecule-systemd:ubuntu-18.04"
+ privileged: true
+ volumes:
+ - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+ - name: "debian-10-priv"
+ image: "quay.io/paulfantom/molecule-systemd:debian-10"
+ privileged: true
+ volumes:
+ - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+provisioner:
+ name: ansible
+ playbooks:
+ prepare: prepare.yml
+ inventory:
+ host_vars:
+ debian-10-priv:
+ ansible_python_interpreter: /usr/bin/python3
+ ubuntu-18.04-priv:
+ ansible_python_interpreter: /usr/bin/python3
+verifier:
+ name: ansible
diff --git a/molecule/default/prepare.yml b/molecule/default/prepare.yml
new file mode 100644
index 0000000..311b712
--- /dev/null
+++ b/molecule/default/prepare.yml
@@ -0,0 +1,15 @@
+---
+# nsd molecule/default/prepare.yml
+#
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Prepare
+ hosts: all
+
+ tasks:
+ - name: Add dnsutils so dig works in tests
+ apt:
+ name: "dnsutils"
+ state: "present"
+ update_cache: true
diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml
new file mode 100644
index 0000000..a4851a1
--- /dev/null
+++ b/molecule/default/verify.yml
@@ -0,0 +1,32 @@
+---
+# nsd molecule/default/verify.yml
+#
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Verify
+ hosts: all
+ tasks:
+
+ # NOTE: Tests do not use the ansible dig lookup, because that executes on
+ # the host running ansible-playbook, not the target host.
+
+ # Lint flags the checks as they execute every time, skip this with 'noqa 301'
+
+ - name: Check for A record
+ command: # noqa 301
+ cmd: "dig gw.example.com @127.0.0.1"
+ register: a_dig
+ failed_when: "'gw.example.com.\t\t3600\tIN\tA\t192.168.1.1' not in a_dig.stdout"
+
+ - name: Check for NS record
+ command: # noqa 301
+ cmd: "dig ns example.com @127.0.0.1"
+ register: ns_dig
+ failed_when: "'example.com.\t\t3600\tIN\tNS\tgw.example.com.' not in ns_dig.stdout"
+
+ - name: Check for CNAME record
+ command: # noqa 301
+ cmd: "dig lpr.example.com @127.0.0.1"
+ register: cn_dig
+ failed_when: "'lpr.example.com.\t3600\tIN\tCNAME\tprinter.example.com.' not in cn_dig.stdout"