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