You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB
YAML

---
- name: Install sqlite
apt:
name: sqlite3
state: present
- name: Make sure pdns-user owns config-directory
file:
path: "{{ powerdns_config_directory }}"
mode: 0775
owner: pdns
group: pdns
state: directory
- name: Check if database file exists
stat:
path: "{{ powerdns_database_file }}"
register: stat_database_file
- block:
- name: Upload database schema if sqlite3 database is not existing
copy:
src: "schema.sql"
dest: "/tmp/powerdns_sqlite3_schema.sql"
mode: 0600
owner: "pdns"
- name: Template sqlite3 database
shell: "sqlite3 {{ powerdns_database_file }} < /tmp/powerdns_sqlite3_schema.sql"
become_user: "pdns"
- name: Delete uploaded database schema
file:
path: "/tmp/powerdns_sqlite3_schema.sql"
state: absent
when: not stat_database_file.stat.exists
- name: Check if TSIG key is in database
command: "sqlite3 {{ powerdns_database_file }} \"SELECT * FROM tsigkeys WHERE name='{{ powerdns_tsig_key_name }}';\""
changed_when: false
register: sqlite3_command_tsig_key_check
- name: Add TSIG key to database
command: "pdnsutil import-tsig-key {{ powerdns_tsig_key_name }} hmac-sha512 {{ powerdns_tsig_key }}"
when: sqlite3_command_tsig_key_check.stdout | length == 0
- name: add supermaster entries
command: "pdnsutil add-supermaster {{ item[0] }} {{ item[1] }}"
ignore_errors: yes
become: yes
become_user: "pdns"
with_nested:
- "{{ powerdns_primary_ips }}"
- "{{ powerdns_secondary_names }}"