@@ -83,7 +83,7 @@ If `apt_version` is omitted, the legacy `apt_repo` string is used with `ansible.
8383` ` `
8484
8585By default, install EPEL to satisfy some PowerDNS Authoritative Server dependencies like `protobuf`.
86- To skip the installation of EPEL set `pdns_install_epel` to `False `.
86+ To skip the installation of EPEL set `pdns_install_epel` to `false `.
8787
8888` ` ` yaml
8989pdns_package_name: "{{ default_pdns_package_name }}"
@@ -97,6 +97,13 @@ pdns_package_version: ""
9797
9898Optionally, allow to set a specific version of the PowerDNS Authoritative Server package to be installed.
9999
100+ ` ` ` yaml
101+ pdns_package_state: "present"
102+ ` ` `
103+
104+ Desired package state for `pdns_package_name`. Supported values include `present`, `latest`, and `absent`.
105+ When set to `absent`, the role removes packages and skips runtime configuration tasks.
106+
100107` ` ` yaml
101108pdns_install_debug_symbols_package: false
102109` ` `
@@ -107,9 +114,15 @@ Install the PowerDNS Authoritative Server debug symbols.
107114pdns_debug_symbols_package_name: "{{ default_pdns_debug_symbols_package_name }}"
108115` ` `
109116
110- The name of the PowerDNS Authoritative Server debug package to be installed when `pdns_install_debug_symbols_package` is `True `,
117+ The name of the PowerDNS Authoritative Server debug package to be installed when `pdns_install_debug_symbols_package` is `true `,
111118` pdns-debuginfo` on RedHat-like systems and `pdns-server-dbg` on Debian-like systems.
112119
120+ ` ` ` yaml
121+ pdns_debug_symbols_package_state: "{{ pdns_package_state }}"
122+ ` ` `
123+
124+ Desired package state for the debug symbols package when it is managed by this role.
125+
113126` ` ` yaml
114127pdns_user: pdns
115128pdns_group: pdns
@@ -129,7 +142,7 @@ Name of the PowerDNS service.
129142
130143` ` ` yaml
131144pdns_service_state: "started"
132- pdns_service_enabled: "yes"
145+ pdns_service_enabled: true
133146pdns_service_masked: false
134147` ` `
135148
@@ -185,6 +198,7 @@ This can be used to change any systemd settings in the `[Service]` category.
185198
186199` ` ` yaml
187200pdns_backends_packages: "{{ default_pdns_backends_packages }}"
201+ pdns_backends_packages_state: "{{ pdns_package_state }}"
188202pdns_backends:
189203 bind:
190204 config: '/dev/null'
@@ -208,11 +222,12 @@ pdns_backends:
208222 'dbname': dns
209223 'bind':
210224 'config': '/etc/named/named.conf'
211- 'hybrid': yes
225+ 'hybrid': true
212226 'dnssec-db': '{{ pdns_config_dir }}/dnssec.db'
213227` ` `
214228
215229By default this role starts just the bind-backend with an empty config file.
230+ ` pdns_backends_packages_state` controls install/update/removal of backend packages.
216231
217232` ` ` yaml
218233pdns_config_additional_dirs: []
@@ -263,6 +278,7 @@ pdns_mysql_cli_extra_args: "{{ default_pdns_mysql_cli_extra_args }}"
263278pdns_mysql_auth_plugin : " "
264279pdns_mysql_user_update_password : " "
265280pdns_mysql_packages : " {{ default_pdns_mysql_packages }}"
281+ pdns_mysql_packages_state : " present"
266282` ` `
267283
268284` pdns_mysql_manage_database` controls whether this role performs MySQL/MariaDB bootstrap operations
@@ -295,11 +311,13 @@ When `pdns_mysql_query_use_socket` is set to `true`, role-internal MySQL operati
295311` pdns_mysql_unix_socket` instead of TCP host/port.
296312` pdns_backends_mysql_cmd` and `pdns_mysql_cli_extra_args` control the MySQL/MariaDB CLI invocation used for schema checks/import.
297313` pdns_mysql_packages` allows overriding OS-specific MySQL dependency package lists.
314+ ` pdns_mysql_packages_state` controls install/update/removal of those dependency packages.
298315
299316` ` ` yaml
300317pdns_pgsql_manage_database: true
301318pdns_pgsql_databases_credentials: {}
302319pdns_pgsql_packages: "{{ default_pdns_pgsql_packages }}"
320+ pdns_pgsql_packages_state: "present"
303321` ` `
304322
305323` pdns_pgsql_manage_database` controls whether this role performs PostgreSQL bootstrap operations
@@ -328,6 +346,7 @@ When `pdns_pgsql_query_use_socket` is set to `true`, role-internal PostgreSQL op
328346(database/user creation and schema load checks/import) use the UNIX socket path defined by
329347` pdns_pgsql_unix_socket` instead of TCP host/port.
330348` pdns_pgsql_packages` allows overriding OS-specific PostgreSQL dependency package lists.
349+ ` pdns_pgsql_packages_state` controls install/update/removal of those dependency packages.
331350
332351` ` ` yaml
333352pdns_sqlite_databases_locations: []
@@ -336,6 +355,12 @@ pdns_sqlite_databases_locations: []
336355Locations of the SQLite3 databases that have to be created if using the
337356` gsqlite3` backend.
338357
358+ ` ` ` yaml
359+ pdns_sqlite_package_state: "present"
360+ ` ` `
361+
362+ Desired package state for the SQLite CLI dependency used during schema bootstrap.
363+
339364` ` ` yaml
340365pdns_lmdb_databases_locations: []
341366` ` `
@@ -371,6 +396,18 @@ pdns_verbose: "{{ ansible_verbosity | int >= 2 }}"
371396Enable verbose/debug role behavior. This currently controls whether sensitive SQL task details
372397are hidden in logs (`false`) or visible for troubleshooting (`true`).
373398
399+ # # Role Tags
400+
401+ This role uses the following standard tags so filtered runs stay predictable with `--tags` / `--skip-tags` :
402+
403+ - `install` : package/module installation or software provisioning.
404+ - `config` : configuration/state changes (templates, files, directories, settings, data bootstrap).
405+ - `service` : service state management and service-related handlers.
406+ - `repository` : repository/key/pinning setup and repository cache refresh.
407+
408+ Some prerequisite tasks intentionally have multiple tags (for example `install` + `repository`,
409+ or `install` + `config`) so filtered runs include the dependencies required by the selected path.
410+
374411# # Example Playbooks
375412
376413Run as a primary using the bind backend (when you already have a `named.conf` file) :
0 commit comments