- name: forum
run_list:
- recipe[forum::default]
+ - name: geodns
+ run_list:
+ - recipe[geodns::default]
+ attributes:
+ networking:
+ interfaces:
+ test:
+ role: external
+ address: 172.18.0.2
- name: geoipupdate
run_list:
- recipe[geoipupdate::default]
- name: "Test Kitchen (forum)"
script:
- bundle exec kitchen test forum-ubuntu-1804
+ - name: "Test Kitchen (geodns)"
+ script:
+ - bundle exec kitchen test geodns-ubuntu-1804
- name: "Test Kitchen (geoipupdate)"
script:
- bundle exec kitchen test geoipupdate-ubuntu-1804
version "1.0.0"
supports "ubuntu"
depends "geoipupdate"
+depends "networking"
depends "systemd"
mode 0o755
end
+%w[tile nominatim].each do |zone|
+ %w[map resource weighted].each do |type|
+ template "/etc/gdnsd/config.d/#{zone}.#{type}" do
+ action :create_if_missing
+ source "zone.#{type}.erb"
+ owner "nobody"
+ group "nogroup"
+ mode 0o644
+ variables :zone => zone
+ end
+ end
+end
+
template "/etc/gdnsd/config" do
source "config.erb"
owner "root"
--- /dev/null
+<%= @zone %> => {
+ datacenters => [dummy]
+}
--- /dev/null
+<%= @zone %> => {
+ map => <%= @zone %>
+ dcmap => {
+ dummy => dummy.example.com.
+ }
+}
--- /dev/null
+require "serverspec"
+
+# Required by serverspec
+set :backend, :exec
+
+describe package("gdnsd") do
+ it { should be_installed }
+end
+
+describe service("gdnsd") do
+ it { should be_enabled }
+ it { should be_running }
+end
+
+describe port(53) do
+ it { should be_listening.with("udp") }
+ it { should be_listening.with("tcp") }
+end