Skip to content

Commit 7f62587

Browse files
author
Colin Hoglund
authored
Merge pull request #2 from singleplatform-eng/add_ability_to_enable_mysql_repo
adding ability to use official mysql repo
2 parents 87b62fc + d1ca91f commit 7f62587

File tree

5 files changed

+43
-0
lines changed

5 files changed

+43
-0
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ env:
1010
playbook: test.yml
1111
- distro: ubuntu1604
1212
playbook: test.yml
13+
- distro: ubuntu1604
14+
playbook: xenial-mysql-repo-test.yml
1315
- distro: ubuntu1404
1416
playbook: test.yml
1517

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ The MySQL users and their privileges. A user has the values `name`, `host` (defa
6868

6969
(OS-specific, RedHat/CentOS defaults listed here) Packages to be installed. In some situations, you may need to add additional packages, like `mysql-devel`.
7070

71+
mysql_apt_repo_version: 5.7
72+
73+
Define this variable to use repo.mysql.com to install mysql packages. Used only for Debian based systems. Disabled by default.
74+
75+
mysql_apt_repo_release: "{{ansible_distribution_release}}"
76+
77+
Override this if you want to install older versions of mysql on newer OS releases.
78+
7179
mysql_enablerepo: ""
7280

7381
(RedHat/CentOS only) If you have enabled any additional repositories (might I suggest geerlingguy.repo-epel or geerlingguy.repo-remi), those repositories can be listed under this variable (e.g. `remi,epel`). This can be handy, as an example, if you want to install later versions of MySQL.

defaults/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ overwrite_global_mycnf: yes
2323
# mysql_config_file: /etc/my.cnf
2424
# mysql_config_include_dir: /etc/my.cnf.d
2525

26+
# Define this to use repo.mysql.com to install mysql packages. Used only for Debian based systems.
27+
# mysql_apt_repo_version: 5.7
28+
# Override this if you want to install older versions of mysql on newer OS releases
29+
mysql_apt_repo_release: "{{ansible_distribution_release}}"
30+
2631
# Pass in a comma-separated list of repos to use (e.g. "remi,epel"). Used only
2732
# for RedHat systems (and derivatives).
2833
mysql_enablerepo: ""

tasks/setup-Debian.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,28 @@
33
stat: path=/etc/init.d/mysql
44
register: mysql_installed
55

6+
- name: Add repo.mysql.com apt key
7+
apt_key: url=http://repo.mysql.com/RPM-GPG-KEY-mysql
8+
when: mysql_apt_repo_version is defined
9+
10+
- name: Add repo.mysql.com apt repo
11+
apt_repository:
12+
repo: "deb http://repo.mysql.com/apt/{{ansible_distribution|lower}}/ {{mysql_apt_repo_release}} mysql-{{mysql_apt_repo_version}}"
13+
when: mysql_apt_repo_version is defined
14+
15+
# This ensures that packages from repo.mysql.com take precedence over OS provided packages
16+
- name: Update apt to prefer repo.mysql.com packages
17+
copy:
18+
content: |
19+
Package: *
20+
Pin: origin repo.mysql.com
21+
Pin-Priority: 900
22+
dest: /etc/apt/preferences.d/mysql
23+
owner: root
24+
group: root
25+
mode: 0644
26+
when: mysql_apt_repo_version is defined
27+
628
- name: Update apt cache if MySQL is not yet installed.
729
apt: update_cache=yes
830
when: mysql_installed.stat.exists == false

tests/xenial-mysql-repo-test.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
- hosts: all
3+
vars:
4+
mysql_apt_repo_version: 5.7
5+
roles:
6+
- role_under_test

0 commit comments

Comments
 (0)