diff --git a/roles/nameserver/tasks/install_powerdns_server.yml b/roles/nameserver/tasks/install_powerdns_server.yml index b74bab9..d70665f 100644 --- a/roles/nameserver/tasks/install_powerdns_server.yml +++ b/roles/nameserver/tasks/install_powerdns_server.yml @@ -12,10 +12,12 @@ - name: nameserver | powerdns-server | install and configure database 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 }}" # required. name of the database to add or remove. I(name=all) May only be provided if I(state) is C(dump) or C(import). List of databases is provided with I(state=dump), I(state=present) and I(state=absent). if name=all Works like --all-databases option for mysqldump (Added in 2.0). @@ -24,6 +26,7 @@ config_file: "/etc/mysql/my.cnf" # not required. Specify a config file from which user and password are to be read. login_unix_socket: "{{ pdns_mysql_socket }}" # not required. The path to a Unix domain socket for local connections. register: database_exists + - name: nameserver | powerdns-server | import database mysql_db: name: "{{ pdns_db_name }}" @@ -32,6 +35,7 @@ config_file: "/etc/mysql/my.cnf" # not required. Specify a config file from which user and password are to be read. login_unix_socket: "{{ pdns_mysql_socket }}" # not required. The path to a Unix domain socket for local connections. when: database_exists.changed + - name: nameserver | powerdns-server | create database user mysql_user: name: "{{ pdns_db_user }}" # required. Name of the user (role) to add or remove. @@ -44,6 +48,7 @@ update_password: on_create # not required. choices: always;on_create. C(always) will update passwords if they differ. C(on_create) will only set the password for newly created users. config_file: "/etc/mysql/my.cnf" # not required. Specify a config file from which user and password are to be read. login_unix_socket: "{{ pdns_mysql_socket }}" # not required. The path to a Unix domain socket for local connections. + - name: nameserver | powerdns-server | copy config template: src: "powerdns-server-pri-mysql-config.j2" @@ -57,15 +62,21 @@ - powerdns_primary is true notify: restart_pdns -- name: nameserver | powerdns-recursor | disable bind - service: - name: "named" - state: stopped - enabled: false - rescue: - - set_fact: task_failed=true +- name: nameserver | powerdns-server | disable bind + block: + - name: nameserver | powerdns-server | get running services + service_facts: -- name: nameserver | powerdns-recursor | enable service + - 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