From afae4c54b740bd734d26fc8a62661ce85230ecd2 Mon Sep 17 00:00:00 2001 From: "Adrien \"ze\" Urban" Date: Thu, 7 Jun 2018 16:02:55 +0200 Subject: [PATCH 1/4] debian: debconf key in pillar Allow debconf keys to be changed via pillars. Useful when using non-standard packages that use different debconf keys to set their passwords. --- mysql/defaults.yaml | 4 ++++ mysql/server.sls | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mysql/defaults.yaml b/mysql/defaults.yaml index b1319db..224d991 100644 --- a/mysql/defaults.yaml +++ b/mysql/defaults.yaml @@ -9,6 +9,8 @@ Ubuntu: service: mysql python: python-mysqldb debconf_utils: debconf-utils + debconf_root_password: mysql-server/root_password + debconf_root_password_again: mysql-server/root_password_again dev: libmysqlclient-dev config: file: /etc/mysql/my.cnf @@ -61,6 +63,8 @@ Debian: client: {{ mysql_engine }}-client python: python-mysqldb debconf_utils: debconf-utils + debconf_root_password: mysql-server/root_password + debconf_root_password_again: mysql-server/root_password_again dev: lib{{ mysql_engine }}client-dev config: file: /etc/mysql/my.cnf diff --git a/mysql/server.sls b/mysql/server.sls index 96bfde1..d6042fb 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -35,8 +35,8 @@ mysql_password_debconf: debconf.set: - name: mysql-server - data: - 'mysql-server/root_password': {'type': 'password', 'value': '{{ mysql_root_password }}'} - 'mysql-server/root_password_again': {'type': 'password', 'value': '{{ mysql_root_password }}'} + {{mysql.debconf_root_password}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} + {{mysql.debconf_root_password_again}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} - require_in: - pkg: {{ mysql.server }} - require: From bb17c3c512cd948bf9e558173cbec82bcddccf9c Mon Sep 17 00:00:00 2001 From: "Adrien \"ze\" Urban" Date: Thu, 7 Jun 2018 16:03:01 +0200 Subject: [PATCH 2/4] debian: debconf root password, support for percona Default values available for percona-server-server. --- mysql/defaults.yaml | 10 ++++++---- mysql/server.sls | 23 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/mysql/defaults.yaml b/mysql/defaults.yaml index 224d991..f0a31d9 100644 --- a/mysql/defaults.yaml +++ b/mysql/defaults.yaml @@ -9,8 +9,9 @@ Ubuntu: service: mysql python: python-mysqldb debconf_utils: debconf-utils - debconf_root_password: mysql-server/root_password - debconf_root_password_again: mysql-server/root_password_again + ## Having some auto-detect for some different pkg if not explicitly set + #debconf_root_password: mysql-server/root_password + #debconf_root_password_again: mysql-server/root_password_again dev: libmysqlclient-dev config: file: /etc/mysql/my.cnf @@ -63,8 +64,9 @@ Debian: client: {{ mysql_engine }}-client python: python-mysqldb debconf_utils: debconf-utils - debconf_root_password: mysql-server/root_password - debconf_root_password_again: mysql-server/root_password_again + ## Having some auto-detect for some different pkg if not explicitly set + #debconf_root_password: mysql-server/root_password + #debconf_root_password_again: mysql-server/root_password_again dev: lib{{ mysql_engine }}client-dev config: file: /etc/mysql/my.cnf diff --git a/mysql/server.sls b/mysql/server.sls index d6042fb..63dd017 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -16,6 +16,25 @@ include: {% if mysql_root_password %} {% if os_family == 'Debian' %} +{% if 'debconf_root_password' in mysql %} +{% set debconf_root_password = mysql.debconf_root_password %} +{% set debconf_root_password_again = mysql.debconf_root_password_again %} +{% elif mysql.server.startswith('percona-server-server') %} +{% if mysql.server < 'percona-server-server-5.7' %}{# 5.5 and 5.6 uses the same name... #} +{% set debconf_root_password = 'percona-server-server/root_password' %} +{% set debconf_root_password_again = 'percona-server-server/root_password_again' %} +{% elif '5.7' in mysql.server %}{# 5.7 changed option name... #} +{% set debconf_root_password = 'percona-server-server-5.7/root-pass' %} +{% set debconf_root_password_again = 'percona-server-server-5.7/re-root-pass' %} +{% else %}{# attempt to support future version? #} +{% set debconf_root_password = mysql.server + '/root-pass' %} +{% set debconf_root_password_again = mysql.server + '/re-root-pass' %} +{% endif %} +{% else %} +{% set debconf_root_password = 'mysql-server/root_password' %} +{% set debconf_root_password_again = 'mysql-server/root_password_again' %} +{% endif %} + mysql_debconf_utils: pkg.installed: - name: {{ mysql.debconf_utils }} @@ -35,8 +54,8 @@ mysql_password_debconf: debconf.set: - name: mysql-server - data: - {{mysql.debconf_root_password}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} - {{mysql.debconf_root_password_again}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} + {{debconf_root_password}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} + {{debconf_root_password_again}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} - require_in: - pkg: {{ mysql.server }} - require: From 1071effbe1fa480b6e62f0c83dc834e7146b6375 Mon Sep 17 00:00:00 2001 From: "Adrien \"ze\" Urban" Date: Thu, 7 Jun 2018 16:03:02 +0200 Subject: [PATCH 3/4] debconf: allow configurable optional root pwd --- mysql/server.sls | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mysql/server.sls b/mysql/server.sls index 63dd017..7c61e80 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -31,8 +31,12 @@ include: {% set debconf_root_password_again = mysql.server + '/re-root-pass' %} {% endif %} {% else %} -{% set debconf_root_password = 'mysql-server/root_password' %} -{% set debconf_root_password_again = 'mysql-server/root_password_again' %} +{% if salt['grains.get']('osmajorrelease')|int < 9 or not salt['grains.get']('os')|lower == 'debian' %} +{% set debconf_root_password = 'mysql-server/root_password' %} +{% set debconf_root_password_again = 'mysql-server/root_password_again' %} +{% else %} +{% set debconf_root_password = False %} +{% endif %} {% endif %} mysql_debconf_utils: @@ -49,7 +53,7 @@ mysql_debconf: - require: - pkg: mysql_debconf_utils -{% if salt['grains.get']('osmajorrelease')|int < 9 or not salt['grains.get']('os')|lower == 'debian' %} +{% if debconf_root_password %} mysql_password_debconf: debconf.set: - name: mysql-server From e7969e3e437a834466fbc48056c8645f8cb614d4 Mon Sep 17 00:00:00 2001 From: "Adrien \"ze\" Urban" Date: Thu, 7 Jun 2018 16:03:03 +0200 Subject: [PATCH 4/4] debconf: don't set password if not required No need to setup debconf root password if we ain't installing it. --- mysql/server.sls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql/server.sls b/mysql/server.sls index 7c61e80..8440441 100644 --- a/mysql/server.sls +++ b/mysql/server.sls @@ -60,7 +60,7 @@ mysql_password_debconf: - data: {{debconf_root_password}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} {{debconf_root_password_again}}: {'type': 'password', 'value': '{{ mysql_root_password }}'} - - require_in: + - prereq: - pkg: {{ mysql.server }} - require: - pkg: mysql_debconf_utils