Support for official mysql 8 packages

I've added support for the official mysql 8.0 packages and the relevant repositories.
Package names are mysql-community-server and mysql-community-client.
I know the repo setting breaks convention a bit but it is compulsory so I'm not sure how else to properly include it.

This change requires the salt pull request I created https://github.com/saltstack/salt/pull/51240 to be able to grant users.
This commit is contained in:
Wayne Gemmell 2019-01-18 13:28:15 +02:00
parent 8f2e6ad770
commit 168d1e2c12
2 changed files with 32 additions and 7 deletions

View file

@ -27,8 +27,6 @@ Debian:
max_allowed_packet: 16M
thread_stack: 192K
thread_cache_size: 8
query_cache_limit: 1M
query_cache_size: 16M
expire_logs_days: 10
max_binlog_size: 100M
#innodb_flush_log_at_trx_commit: 1

View file

@ -4,6 +4,7 @@ include:
{% from tpldir ~ "/map.jinja" import mysql with context %}
{% set os = salt['grains.get']('os', None) %}
{% set os_family = salt['grains.get']('os_family', None) %}
{% set mysql_root_user = salt['pillar.get']('mysql:server:root_user', 'root') %}
@ -12,9 +13,21 @@ include:
{% set mysql_salt_user = salt['pillar.get']('mysql:salt_user:salt_user_name', mysql_root_user) %}
{% set mysql_salt_password = salt['pillar.get']('mysql:salt_user:salt_user_password', mysql_root_password) %}
{% set mysql_datadir = salt['pillar.get']('mysql:server:mysqld:datadir', '/var/lib/mysql') %}
{% set lsb_distrib_codename = salt['grains.get']('lsb_distrib_codename', None) %}
{% if mysql_root_password %}
{% if os_family == 'Debian' %}
{% if mysql.serverpkg == 'mysql-community-server' %}
mysql-community-server_repo:
pkgrepo.managed:
- humanname: "Mysql official repo"
- name: deb http://repo.mysql.com/apt/ubuntu/ {{ lsb_distrib_codename }} mysql-8.0
- file: /etc/apt/sources.list.d/mysql.list
- refresh: True
- require_in:
- pkg: mysql-community-server
{% endif %}
mysql_debconf_utils:
pkg.installed:
- name: {{ mysql.debconf_utils }}
@ -31,17 +44,31 @@ mysql_debconf:
{% if salt['grains.get']('osmajorrelease')|int < 9 or not salt['grains.get']('os')|lower == 'debian' %}
{% if mysql.serverpkg == 'mysql-community-server' %}
mysql_password_debconf:
debconf.set:
- name: mysql-server
- name: 'mysql-community-server'
- data:
'mysql-server/root_password': {'type': 'password', 'value': '{{ mysql_root_password }}'}
'mysql-server/root_password_again': {'type': 'password', 'value': '{{ mysql_root_password }}'}
'mysql-community-server/root-pass': {'type': 'password', 'value': '{{ mysql_root_password }}'}
'mysql-community-server/re-root-pass': {'type': 'password', 'value': '{{ mysql_root_password }}'}
'mysql-server/default-auth-override': {'type': 'string', 'value':'Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)'}
- require_in:
- pkg: {{ mysql.serverpkg }}
- require:
- pkg: mysql_debconf_utils
{% else %}
mysql_password_debconf:
debconf.set:
- name: {{ mysql.serverpkg }}
- data:
'{{ mysql.serverpkg }}/root_password': {'type': 'password', 'value': '{{ mysql_root_password }}'}
'{{ mysql.serverpkg }}/root_password_again': {'type': 'password', 'value': '{{ mysql_root_password }}'}
- require_in:
- pkg: {{ mysql.serverpkg }}
- require:
- pkg: mysql_debconf_utils
{% endif %}
{% endif %}
{% elif os_family in ['RedHat', 'Suse', 'FreeBSD'] %}