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
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 }}"
|
|
|