# setup code for the mysql_db module # (c) 2014, Wayne Rosario # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . # ============================================================ - name: python 2 set_fact: python_suffix: "" when: ansible_python_version is version('3', '<') - name: python 3 set_fact: python_suffix: "-py3" when: ansible_python_version is version('3', '>=') - include_vars: '{{ item }}' with_first_found: - files: - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}{{ python_suffix }}.yml' - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml' - '{{ ansible_os_family }}-{{ ansible_distribution_major_version }}{{ python_suffix }}.yml' - '{{ ansible_distribution }}{{ python_suffix }}.yml' - '{{ ansible_os_family }}{{ python_suffix }}.yml' - 'default{{ python_suffix }}.yml' paths: '../vars' - name: install mysqldb_test rpm dependencies yum: name={{ item }} state=latest with_items: "{{mysql_packages}}" when: ansible_pkg_mgr == 'yum' - block: # This is required as mariadb-server has a weak dependency on Python 2 which causes the test to break on Py3 hosts - name: create test dnf.conf file to ignore weak dependencies copy: content: | [main] install_weak_deps=False dest: '{{ output_dir }}/dnf.conf' register: test_dnf_conf_copy - name: install mysqldb_test rpm dependencies dnf: name: '{{ item }}' state: latest conf_file: '{{ test_dnf_conf_copy.dest }}' with_items: "{{mysql_packages}}" always: - name: remove test dnf.conf file file: path: '{{ test_dnf_conf_copy.dest }}' state: absent when: ansible_pkg_mgr == 'dnf' - name: install mysqldb_test debian dependencies apt: name={{ item }} state=latest with_items: "{{mysql_packages}}" when: ansible_pkg_mgr == 'apt' - name: install mysqldb_test FreeBSD dependencies pkgng: name: "{{ item }}" state: present with_items: "{{mysql_packages}}" when: ansible_os_family == "FreeBSD" - name: install mysql-python package via pip (FreeBSD) pip: name: mysql-python state: present when: ansible_os_family == "FreeBSD" - name: enable mysql-server service (FreeBSD) lineinfile: path: /etc/rc.conf line: 'mysql_server_enable="YES"' when: ansible_os_family == "FreeBSD" - name: apply work-around for OverlayFS issue # https://github.com/docker/for-linux/issues/72#issuecomment-319904698 command: find /var/lib/mysql -type f -exec touch {} ; # find will fail if mysql has never been started, as the directory won't exist ignore_errors: yes - name: restart mysql_db service service: name={{ mysql_service }} state=restarted - name: Detect socket path shell: > echo "show variables like 'socket'\G" | mysql | grep 'Value: ' | sed 's/[ ]\+Value: //' register: _socket_path - name: Set socket path set_fact: mysql_socket: '{{ _socket_path["stdout"] }}'