124 lines
4.1 KiB
YAML
124 lines
4.1 KiB
YAML
- name: Nameserver | powerdns-server | install packages
|
|
package:
|
|
name: "{{ powerdns_server_package }}"
|
|
state: present
|
|
|
|
- name: Nameserver | powerdns-server | install backends
|
|
package:
|
|
name: "{{ item.package }}"
|
|
state: latest
|
|
with_items: "{{ powerdns_backends }}"
|
|
|
|
- name: Nameserver | powerdns-server | install and configure database
|
|
when:
|
|
- powerdns_primary is defined
|
|
- powerdns_primary is true
|
|
block:
|
|
- include_role: name=database # required. The name of the role to be executed.
|
|
|
|
- name: Nameserver | powerdns-server | install python mysql client
|
|
package:
|
|
name: "{{ python_mysql_client }}"
|
|
state: present
|
|
|
|
- name: Nameserver | powerdns-server | create database
|
|
mysql_db:
|
|
name: "{{ pdns_db_name }}"
|
|
state: present
|
|
encoding: "utf8"
|
|
config_file: "/etc/mysql/my.cnf"
|
|
login_unix_socket: "{{ pdns_mysql_socket }}"
|
|
register: database_exists
|
|
|
|
- name: Nameserver | powerdns-server | import database
|
|
mysql_db:
|
|
name: "{{ pdns_db_name }}"
|
|
state: import
|
|
target: "{{ pdns_mysql_schema }}"
|
|
config_file: "/etc/mysql/my.cnf"
|
|
login_unix_socket: "{{ pdns_mysql_socket }}"
|
|
when: database_exists.changed
|
|
|
|
- name: Nameserver | powerdns-server | create database user
|
|
mysql_user:
|
|
name: "{{ pdns_db_user }}"
|
|
password: "{{ pdns_db_passwd | default(lookup('password', '/etc/powerdns/pdns.d/.mysqlpw length=20')) }}" # not required. Set the user's password..
|
|
host: localhost
|
|
priv: "{{ pdns_db_name }}.*:ALL"
|
|
append_privs: False
|
|
sql_log_bin: True
|
|
state: present
|
|
update_password: on_create
|
|
config_file: "/etc/mysql/my.cnf"
|
|
login_unix_socket: "{{ pdns_mysql_socket }}"
|
|
|
|
- name: Nameserver | powerdns-server | create database users for secondaries
|
|
mysql_user:
|
|
name: "{{ pdns_db_user }}"
|
|
password: "{{ pdns_db_passwd | default(lookup('password', '/etc/powerdns/pdns.d/.mysqlpw length=20')) }}"
|
|
host: "{{ item }}"
|
|
priv: "{{ pdns_db_name }}.*:SELECT"
|
|
append_privs: False
|
|
sql_log_bin: True
|
|
state: present
|
|
update_password: on_create
|
|
config_file: "/etc/mysql/my.cnf"
|
|
login_unix_socket: "{{ pdns_mysql_socket }}"
|
|
loop: "{{ pdns_secondaries }}"
|
|
|
|
- name: Nameserver | powerdns-server | configure mysql for network
|
|
ini_file:
|
|
path: "/etc/mysql/mariadb.conf.d/50-server.cnf"
|
|
section: "mysqld"
|
|
option: "bind-address"
|
|
value: "{{ ansible_default_ipv4.address }}"
|
|
state: present
|
|
no_extra_spaces: False # not required. Do not insert spaces before and after '=' symbol.
|
|
notify: restart_mysqld
|
|
|
|
- name: Nameserver | powerdns-server | copy config
|
|
template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
mode: "0644"
|
|
owner: "root"
|
|
group: "root"
|
|
force: no
|
|
loop:
|
|
- { src: "powerdns-server-pri-mysql-config.j2", dest: "/etc/powerdns/pdns.d/mysql.conf" }
|
|
- { src: "powerdns-server-pri-api-config.j2", dest: "/etc/powerdns/pdns.d/api.conf"}
|
|
notify: restart_pdns
|
|
|
|
- name: Nameserver | powerdns-server | configure backends for secondaries
|
|
when:
|
|
- powerdns_primary is defined
|
|
- powerdns_primary is false
|
|
- powerdns_secondary is defined
|
|
- powerdns_secondary is true
|
|
template:
|
|
src: "powerdns-server-pri-mysql-config.j2"
|
|
dest: "/etc/powerdns/pdns.d/mysql.conf"
|
|
mode: "0644"
|
|
owner: "root"
|
|
group: "root"
|
|
force: no
|
|
|
|
- name: Nameserver | powerdns-server | disable bind
|
|
block:
|
|
- name: Nameserver | powerdns-server | get running services
|
|
service_facts:
|
|
|
|
- name: Nameserver | powerdns-server | disable bind
|
|
service:
|
|
name: "named"
|
|
state: stopped
|
|
enabled: false
|
|
when: "'bind' in service_names"
|
|
vars:
|
|
service_names: "{{ services|dict2items|map(attribute='value.name')|list }}"
|
|
|
|
- name: Nameserver | powerdns-server | enable service
|
|
service:
|
|
name: "pdns"
|
|
state: started
|
|
enabled: true |