diff --git a/playbooks/roles/mysql/defaults/main.yml b/playbooks/roles/mysql/defaults/main.yml index 85b19b7..4c5478a 100644 --- a/playbooks/roles/mysql/defaults/main.yml +++ b/playbooks/roles/mysql/defaults/main.yml @@ -1,7 +1,5 @@ --- -remove_experimental_mysql: false - mysql_debian_pkgs: - - "mysql-server-5.6" + - software-properties-common - python-mysqldb - + - "mysql-server=5.6.*" diff --git a/playbooks/roles/mysql/tasks/main.yml b/playbooks/roles/mysql/tasks/main.yml index a85d928..49f2a0c 100644 --- a/playbooks/roles/mysql/tasks/main.yml +++ b/playbooks/roles/mysql/tasks/main.yml @@ -1,17 +1,33 @@ --- -- name: Look for mysql 5.6 - shell: "dpkg -s mysql-server" - ignore_errors: yes - register: mysql_56_installed - changed_when: no +- name: Add MySQL experimental apt key + apt_key: + id: 4F4EA0AAE5267A6C + keyserver: "{{ COMMON_EDX_PPA_KEY_SERVER }}" + state: present + +- name: Install apt repository + apt_repository: + repo: 'deb http://ppa.launchpad.net/ondrej/mysql-experimental/ubuntu precise main' + update_cache: yes -- fail: - msg: "MySQL experimental is already installed, make remove_experimental_mysql: true in defaults/main.yml, if you want to remove it" - when: "'5.6.14' in mysql_56_installed.stdout and not remove_experimental_mysql" +- name: install mysql 56 and dependencies + apt: + name: "{{ item }}" + install_recommends: yes + force: yes + state: present + with_items: mysql_debian_pkgs -# remove this, once the new devstack is out -- include: remove_mysql_experimental.yml - when: remove_experimental_mysql +- name: start mysql + service: + name: mysql + state: started -- include: mysql.yml - when: (mysql_56_installed.rc == 1) or (remove_experimental_mysql) \ No newline at end of file +- name: Ensure Anonymous user(s) does not exist + mysql_user: + name: '' + host: "{{ item }}" + state: absent + with_items: + - localhost + - "{{ ansible_hostname }}" diff --git a/playbooks/roles/mysql/tasks/mysql.yml b/playbooks/roles/mysql/tasks/mysql.yml deleted file mode 100644 index 8ff69a7..0000000 --- a/playbooks/roles/mysql/tasks/mysql.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -# Here are the few steps that I have performed to get the `debconf` setting information: -# -# - downloaded the mysql-apt-repo from the mysql official site(named: mysql-apt-config_0.6.0-1_all.deb) -# - Find the `debconf` setting information after installing this `deb` package -# -# # debconf-show mysql-apt-config -# * mysql-apt-config/select-server: mysql-5.6 -# mysql-apt-config/unsupported-platform: abort -# mysql-apt-config/repo-codename: precise -# * mysql-apt-config/select-product: Apply -# mysql-apt-config/select-tools: -# mysql-apt-config/repo-distro: ubuntu -# -# - Even to get more information about the `debconf` options of the package: -# -# # debconf-get-selections|grep mysql-apt-config -# mysql-apt-config mysql-apt-config/select-server select mysql-5.6 -# mysql-apt-config mysql-apt-config/unsupported-platform select abort -# mysql-apt-config mysql-apt-config/repo-codename select precise -# mysql-apt-config mysql-apt-config/select-product select Apply -# mysql-apt-config mysql-apt-config/select-tools select -# mysql-apt-config mysql-apt-config/repo-distro select ubuntu -# -# - After the installation, I have checked the `/etc/apt/sources.list.d` directory and found one file `mysql.list` -# with following contents: -# -# deb http://repo.mysql.com/apt/ubuntu/ precise mysql-apt-config -# deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6 -# deb-src http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6 -# -# -# Thought that instead of performing all those steps and get the repo, why not directly use this repo -# `deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6`, I just picked this line and directly used it and it worked for us. - -- name: Add MySQL community apt key - apt_key: - id: 8C718D3B5072E1F5 - keyserver: "{{ COMMON_EDX_PPA_KEY_SERVER }}" - state: present - -- name: Install MySQL community apt repositories - apt_repository: - repo: "deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6" - update_cache: yes - -- name: Install mysql-5.6 and dependencies - apt: - name: "{{ item }}" - install_recommends: yes - state: present - with_items: mysql_debian_pkgs - -- name: Start mysql - service: - name: mysql - state: started - -- name: Ensure Anonymous user(s) does not exist - mysql_user: - name: '' - host: "{{ item }}" - state: absent - with_items: - - localhost - - "{{ ansible_hostname }}" diff --git a/playbooks/roles/mysql/tasks/remove_mysql_experimental.yml b/playbooks/roles/mysql/tasks/remove_mysql_experimental.yml deleted file mode 100644 index 2eaceed..0000000 --- a/playbooks/roles/mysql/tasks/remove_mysql_experimental.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- name: Stop mysql service - service: - name: mysql - state: stopped - -- name: Remove experimental version of mysql - apt: - name: "{{ item }}" - state: absent - purge: yes - with_items: - - mysql-server-5.6 - - mysql-server \ No newline at end of file