- name: Install MySQL (debuntu) package: name: "{{ item }}" state: present with_items: - mariadb-server - mariadb-client - python-mysqldb - php{{ php_version }} - php{{ php_version }}-mysql - php-pear - php{{ php_version }}-gd - php{{ php_version }}-imap - php{{ php_version }}-ldap - php{{ php_version }}-odbc # - php{{ php_version }}-xml - php{{ php_version }}-xmlrpc when: is_debuntu tags: - download - name: php-xml (ubuntu or debian-9) package: name: "php{{ php_version }}-xml" state: present when: is_ubuntu or is_debian_9 - name: php-xml (debian-8) package: name: "php-xml-parser" state: present when: is_debian_8 - name: Install MySQL (OS's other than debuntu) package: name: "{{ item }}" state: present with_items: - MySQL-python - mysql - php - php-mysql - php-pear - php-gd - php-imap - php-ldap - php-odbc - php-xml - php-xmlrpc when: not is_debuntu tags: - download - include_tasks: centos.yml when: ansible_distribution == "CentOS" tags: - download - include_tasks: fedora.yml when: ansible_distribution == "Fedora" tags: - download # Name of mysql service varies by OS so softcoded in 1-prep - name: Start the MySQL service service: name: "{{ mysql_service }}" state: started - name: Enable the MySQL service service: name: "{{ mysql_service }}" enabled: yes when: mysql_enabled # 'localhost' needs to be the last item for idempotency, see # http://ansible.cc/docs/modules.html#mysql-user # unfortunately it still doesn't work - name: Update MySQL root password for localhost root accounts mysql_user: name: root host: "{{ item }}" password: "{{ mysql_root_password }}" priv: "*.*:ALL,GRANT" with_items: - localhost when: mysql_enabled - name: Copy .my.cnf file with root password credentials template: src: my.cnf.j2 dest: /root/.my.cnf owner: root mode: 0600 when: mysql_enabled - name: Update MySQL root password for all remaining root accounts mysql_user: name: root host: "{{ item }}" password: "{{ mysql_root_password }}" priv: "*.*:ALL,GRANT" with_items: # - "{{ iiab_hostname }}.{{ iiab_domain }}" - 127.0.0.1 - ::1 when: mysql_enabled - name: Delete anonymous MySQL server user for {{ ansible_hostname }} mysql_user: user: "" host: "{{ ansible_hostname }}" state: absent when: mysql_enabled - name: Delete anonymous MySQL server user for localhost mysql_user: user: "" state: absent when: mysql_enabled - name: Remove the MySQL test database mysql_db: db: test state: absent when: mysql_enabled # we had to start mysql in order to configure it, now turn if off if not enabled - name: Provisionally Disable the MySQL service service: name: "{{ mysql_service }}" enabled: no state: stopped when: not mysql_enabled - name: Add 'mysql' to list of services at /etc/iiab/iiab.ini ini_file: dest: "{{ service_filelist }}" section: mysql option: "{{ item.option }}" value: "{{ item.value }}" with_items: - option: name value: MySQL - option: description value: '"MySQL is a widely used free and open source (GPLv2) database, offered by most web hosting services, on a diversity of platforms."' - option: enabled value: "{{ mysql_enabled }}"