Skip to content
Snippets Groups Projects
Select Git revision
  • 4c88e7b918fb1a0b74aa00496ad88b76d7e44cea
  • master default
2 results

main.yml

Blame
  • main.yml 2.09 KiB
    ---
    # tasks file for mysql
    
    - name: Assertions
      assert:
        that:
            - ansible_os_family == 'Debian'
            - ansible_distribution_release in mysql_version
    
    - name: Get groups
      getent:
          database: group
    
    - name: Preseed root password
      when: mysql_root_password is defined
      with_items:
          - root_password
          - root_password_again
      debconf:
          name: '{{ mysql_server_package }}'
          question: 'mysql-server/{{ item }}'
          vtype: password
          value: '{{ mysql_root_password }}'
      changed_when: False # Can't verify previous password therefore there's always
                          # a change, explicitly disable that.
    
    - name: APT install
      with_items:
          - mysql-server
          - mysql-client
          - python-mysqldb
      apt:
        name: '{{ item }}'
        state: present
        update_cache: yes
        cache_valid_time: 3600
    
    - name: Reconfigure package in case root password was changed
      changed_when: False
      command: 'dpkg-reconfigure --frontend noninteractive {{ mysql_server_package }}'
    
    - name: Allow MySQL access to the TLS cert and key
      when: "'ssl-cert' in getent_group"
      user:
        append: yes
        groups: ssl-cert
        name: mysql
      notify:
          - Restart MySQL
    
    - name: Alias mail
      when: mysql_mail_alias is defined
      lineinfile:
          dest: /etc/aliases
          create: True
          line: 'mysql: {{ mysql_mail_alias }}'
          regexp: 'mysql:'
          state: present
    
    - name: Add admin account
      when: mysql_admin_password is defined
      mysql_user:
        name: admin
        host: '%'
        password: '{{ mysql_admin_password }}'
        priv: '*.*:ALL,GRANT,REQUIRESSL'
        login_password: '{{ mysql_root_password|default(omit) }}'
        state: present
    
    - name: Copy configuration templates