Changeset - e9c5e116996a
[Not reviewed]
2 4 0
Branko Majic (branko) - 4 years ago 2020-05-05 22:59:11
branko@majic.rs
MAR-152: Drop support for Debian 8 Jessie from the database_server role.
6 files changed with 28 insertions and 95 deletions:
0 comments (0 inline, 0 general)
docs/rolereference.rst
Show inline comments
 
@@ -1989,7 +1989,6 @@ Distribution compatibility
 

	
 
Role is compatible with the following distributions:
 

	
 
- Debian 8 (Jessie)
 
- Debian 9 (Stretch)
 

	
 

	
roles/database_server/molecule/default/molecule.yml
Show inline comments
 
@@ -14,13 +14,6 @@ lint:
 

	
 
platforms:
 

	
 
  - name: parameters-mandatory-jessie64
 
    groups:
 
      - parameters-mandatory
 
    box: debian/contrib-jessie64
 
    memory: 512
 
    cpus: 1
 

	
 
  - name: parameters-mandatory-stretch64
 
    groups:
 
      - parameters-mandatory
roles/database_server/molecule/default/tests/test_default.py
Show inline comments
 
@@ -74,6 +74,20 @@ def test_root_my_cnf_login(host):
 
        assert "performance_schema" in login.stdout
 

	
 

	
 
def test_utf8_configuration_file(host):
 
    """
 
    Tests if UTF-8 database server configuration file has been deployed
 
    correctly.
 
    """
 

	
 
    config = host.file('/etc/mysql/mariadb.conf.d/90-utf8.cnf')
 

	
 
    assert config.is_file
 
    assert config.user == 'root'
 
    assert config.group == 'root'
 
    assert config.mode == 0o644
 

	
 

	
 
def test_utf8_configuration(host):
 
    """
 
    Tests if UTF-8 configuration has been applied correctly to server.
roles/database_server/molecule/default/tests/test_default_jessie64.py
Show inline comments
 
deleted file
roles/database_server/molecule/default/tests/test_default_stretch64.py
Show inline comments
 
deleted file
roles/database_server/tasks/main.yml
Show inline comments
 
@@ -32,48 +32,37 @@
 
    group: root
 
    mode: 0400
 

	
 
- name: Check if root user authentication is based on use of unix_socket module (Stretch default)
 
- name: Check if root user authentication is based on use of unix_socket module
 
  command: mysql --skip-column-names -B -e "select 1 from mysql.user where user='root' and plugin='unix_socket';"
 
  when: "ansible_distribution_release == 'stretch'"
 
  register: "root_using_unix_socket_authentication"
 
  changed_when: false
 

	
 
- name: Disable use of unix socket login on Debian Stretch (temporary workaround)
 
# @TODO: This is essentially a leftover from the days of Debian
 
#        Jessie, which by default did not use unix socket
 
#        authentication for the root account. To make the deployment
 
#        the same on both distros, unix socket authentication was
 
#        disabled on Debian Stretch at the time. It might be worth the
 
#        effort to revisit this and figure out if unix socket
 
#        authentication should be reenabled instead (and whether
 
#        password for the root account should be used at all).
 
- name: Disable use of unix socket login
 
  command: "mysql -B -e \"update mysql.user set plugin='' where user='root' and plugin='unix_socket'; flush privileges;\""
 
  when: "ansible_distribution_release == 'stretch' and root_using_unix_socket_authentication.stdout"
 
  when: "root_using_unix_socket_authentication.stdout"
 

	
 
- name: Remove UTF-8 encoding configuration file from the old location on Debian Stretch
 
  file:
 
    path: "/etc/mysql/conf.d/utf8.cnf"
 
    state: absent
 
  when: "ansible_distribution_release == 'stretch'"
 
  register: mariadb_utf8_configuration_stretch
 

	
 
- name: Set UTF-8 encoding as default for MariaDB (on Jessie)
 
  copy:
 
    src: "utf8.cnf"
 
    dest: "/etc/mysql/conf.d/utf8.cnf"
 
    owner: root
 
    group: root
 
    mode: 0644
 
  when: "ansible_distribution_release == 'jessie'"
 
  register: mariadb_utf8_configuration_jessie
 

	
 
- name: Set UTF-8 encoding as default for MariaDB (on Stretch)
 
- name: Set UTF-8 encoding as default for MariaDB
 
  copy:
 
    src: "utf8.cnf"
 
    dest: "/etc/mysql/mariadb.conf.d/90-utf8.cnf"
 
    owner: root
 
    group: root
 
    mode: 0644
 
  when: "ansible_distribution_release == 'stretch'"
 
  register: mariadb_utf8_configuration_stretch
 
  register: mariadb_utf8_configuration
 

	
 
- name: Restart MariaDB in order to use UTF-8 as default character set
 
  service:
 
    name: mysql
 
    state: restarted
 
  when: mariadb_utf8_configuration_jessie.changed or mariadb_utf8_configuration_stretch.changed
 
  when: mariadb_utf8_configuration.changed
 
  tags:
 
    # [ANSIBLE0016] Tasks that run when changed should likely be handlers
 
    #   UTF-8 configuration must be applied immediatelly in order to ensure that
0 comments (0 inline, 0 general)