mirror of
https://github.com/saltstack-formulas/mysql-formula.git
synced 2025-04-16 09:40:26 +00:00
Add install/remove states for MacOS (downloads.mysql.com)
This commit is contained in:
parent
2e9b8f9d4c
commit
4cdc21bc92
8 changed files with 269 additions and 7 deletions
20
README.rst
20
README.rst
|
@ -2,7 +2,7 @@
|
|||
mysql
|
||||
=====
|
||||
|
||||
Install the MySQL client and/or server.
|
||||
Install the MySQL client and/or server on Linux and MacOS.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -18,23 +18,29 @@ Available states
|
|||
``mysql``
|
||||
---------
|
||||
|
||||
Meta-state that includes all server packages in the correct order.
|
||||
Meta-state including all server packages in correct order. This meta-state does **not** include ``mysql.remove_test_database``.
|
||||
|
||||
This meta-state does **not** include ``mysql.remove_test_database``; see
|
||||
below for details.
|
||||
``mysql.macos``
|
||||
----------------
|
||||
|
||||
Install "MySQL Community Server", "MySQL Workbench", and any other enabled products on MacOS.
|
||||
|
||||
``mysql.macos.remove``
|
||||
----------------
|
||||
|
||||
Remove "MySQL Community Server", "MySQL Workbench", and any other enabled products from MacOS.
|
||||
|
||||
``mysql.client``
|
||||
----------------
|
||||
|
||||
Install the MySQL client package.
|
||||
Install the MySQL client package on Linux.
|
||||
|
||||
``mysql.server``
|
||||
----------------
|
||||
|
||||
Install the MySQL server package and start the service.
|
||||
|
||||
Debian OS family supports setting MySQL root password during install via
|
||||
debconf.
|
||||
Debian OS family supports setting MySQL root password during install via debconf.
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
|
@ -21,6 +21,74 @@ mysql:
|
|||
port: 3306
|
||||
datadir: /var/lib/mysql
|
||||
|
||||
macos:
|
||||
userhomes: /Users
|
||||
user:
|
||||
group:
|
||||
dl:
|
||||
tmpdir: /tmp/mysqltmp
|
||||
bindir: /usr/local/bin
|
||||
opts: -s -L
|
||||
interval: 60
|
||||
retries: 2
|
||||
products:
|
||||
community_server:
|
||||
enabled: True
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-8.0.11-macos10.13-x86_64.dmg
|
||||
sum: 'md5=602a84390ecf3d82025b1d99fc594124'
|
||||
dest: /Applications/MySQL.app
|
||||
isapp: False
|
||||
workbench:
|
||||
enabled: True
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.11-rc-macos-x86_64.dmg
|
||||
sum: 'md5=37c5ae5bd75a4e1804ae6e0127d68611'
|
||||
dest: /Applications/MySQLWorkbench.app
|
||||
cluster:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-cluster-gpl-7.6.6-macos10.13-x86_64.dmg
|
||||
sum: 'md5=0df975908e7d8e4e8c1003d95edf4721'
|
||||
dest: /Applications/MySQLCluster.app
|
||||
router:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-router-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=8dd536f2f223933ecbfb8b19e54ee2f6'
|
||||
dest: /Applications/MySQLRouter.app
|
||||
utilities:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-utilities-1.6.5-macos10.12.dmg
|
||||
sum: 'md5=4c8e75bb217b8293dcdeb915b649c2c8'
|
||||
dest: /Applications/MySQLUtilities.app
|
||||
shell:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-shell-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=43db4f0fc39f88c1d7be4a4f52cec363'
|
||||
dest: /Applications/MySQLShell.app
|
||||
proxy:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-osx10.7-x86-32bit.tar.gz
|
||||
sum: 'md5=107df22412aa8c483d2021e1af24ee22'
|
||||
dest: /opt/mysql/proxy
|
||||
connnector:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-connector-nodejs-8.0.11.tar.gz
|
||||
sum: 'md5=dece7fe5607918ba68499ef07c31508d'
|
||||
dest: /opt/mysql/connector/nodejs
|
||||
forvisualstudio:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-visualstudio-2.0.4-src.zip
|
||||
sum: 'md5=fcf39316505ee2921e31a431eae77a9c'
|
||||
dest: /opt/mysql/visualstudio
|
||||
forexcel:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-excel-1.3.6-src.zip
|
||||
sum: 'md5=2cc8b65eb72a1b07a6e4e2665e2a29e3'
|
||||
dest: /opt/mysql/excel
|
||||
notifier:
|
||||
enabled: False
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-notifier-1.1.6-src.zip
|
||||
sum: 'md5=349f1994681763fd6626a8ddf6be5363'
|
||||
dest: /opt/mysql/notifier
|
||||
|
||||
#The following dict names are reserved for pillar data (see pillar.example)
|
||||
global: {}
|
||||
clients: {}
|
||||
|
|
3
mysql/macos/init.sls
Normal file
3
mysql/macos/init.sls
Normal file
|
@ -0,0 +1,3 @@
|
|||
|
||||
include:
|
||||
- mysql.macos.install
|
85
mysql/macos/install.sls
Normal file
85
mysql/macos/install.sls
Normal file
|
@ -0,0 +1,85 @@
|
|||
### mysql/macos/install.sls
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=yaml
|
||||
{%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context -%}
|
||||
|
||||
{%- set dl = mysql.macos.dl %}
|
||||
|
||||
mysql-macos-extract-dirs:
|
||||
file.directory:
|
||||
- name: {{ dl.tmpdir }}
|
||||
- makedirs: True
|
||||
- clean: True
|
||||
|
||||
{%- for product, data in mysql.macos.products.items() if data.enabled %}
|
||||
{%- set archivename = data.url.split('/')[-1]|quote %}
|
||||
{%- set archiveformat = archivename.split('.')[-1] %}
|
||||
|
||||
mysql-macos-remove-previous-{{ product }}-download-archive:
|
||||
file.absent:
|
||||
- name: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- require_in:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
|
||||
mysql-macos-download-{{ product }}-archive:
|
||||
pkg.installed:
|
||||
- name: curl
|
||||
cmd.run:
|
||||
- name: curl {{ dl.opts }} -o {{ dl.tmpdir }}/{{ archivename }} {{ data.url }}
|
||||
{% if grains['saltversioninfo'] >= [2017, 7, 0] %}
|
||||
- retry:
|
||||
attempts: {{ dl.retries }}
|
||||
interval: {{ dl.interval }}
|
||||
{% endif %}
|
||||
- require:
|
||||
- mysql-macos-extract-dirs
|
||||
|
||||
{%- if data.sum %}
|
||||
mysql-macos-check-{{ product }}-archive-hash:
|
||||
module.run:
|
||||
- name: file.check_hash
|
||||
- path: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- file_hash: {{ data.sum }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
- require_in:
|
||||
- mysql-macos-{{ product }}-install
|
||||
{%- endif %}
|
||||
|
||||
mysql-macos-{{ product }}-install:
|
||||
{%- if archiveformat in ('dmg',) %}
|
||||
macpackage.installed:
|
||||
- name: "{{ dl.tmpdir }}/{{ archivename }}"
|
||||
- dmg: True
|
||||
- app: {{ 'True' if "isapp" not in data else data.isapp }}
|
||||
- force: True
|
||||
- allow_untrusted: True
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
- require_in:
|
||||
- mysql-macos-remove-{{ product }}-archive
|
||||
file.append:
|
||||
- name: {{ mysql.macos.userhomes }}/{{ mysql.macos.user }}/.bash_profile
|
||||
- text: 'export PATH=$PATH:{{ data.dest }}/Contents/Versions/latest/bin'
|
||||
|
||||
{%- elif archiveformat in ('gz', 'zip',) %}
|
||||
archive.extracted:
|
||||
- source: file://{{ dl.tmpdir }}{{ archivename }}
|
||||
- name: {{ dl.bindir }}
|
||||
- trim_output: True
|
||||
- source_hash: {{ data.sum }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
- require_in:
|
||||
- mysql-macos-remove-{{ product }}-archive
|
||||
|
||||
{%- endif %}
|
||||
|
||||
mysql-macos-remove-{{ product }}-archive:
|
||||
file.absent:
|
||||
- name: {{ dl.tmpdir }}/{{ archivename }}
|
||||
- onchanges:
|
||||
- mysql-macos-download-{{ product }}-archive
|
||||
|
||||
{%- endfor %}
|
||||
|
36
mysql/macos/remove.sls
Normal file
36
mysql/macos/remove.sls
Normal file
|
@ -0,0 +1,36 @@
|
|||
### mysql/macos/remove.sls
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=yaml
|
||||
{%- from salt.file.dirname(tpldir) ~ "/map.jinja" import mysql with context -%}
|
||||
|
||||
{%- for product, data in mysql.macos.products.items() if data.enabled %}
|
||||
{%- set archivename = data.url.split('/')[-1] %}
|
||||
|
||||
mysql-macos-{{ product }}-remove-destdir:
|
||||
file.absent:
|
||||
- names:
|
||||
- {{ data.dest }}
|
||||
|
||||
{%- endfor %}
|
||||
|
||||
##https://apple.stackexchange.com/questions/230333/how-could-i-remove-mysql-from-manually-installation-version
|
||||
##https://community.jaspersoft.com/wiki/uninstall-mysql-mac-os-x
|
||||
mysql-macos-remove-entry-in-/etc/hostconfig:
|
||||
file.line:
|
||||
- name: /etc/hostconfig
|
||||
- mode: delete
|
||||
- content: MYSQLCOM=-YES-
|
||||
- onlyif: test -f /etc/hostconfig
|
||||
|
||||
mysql-macos-remove-mysql-fully:
|
||||
file.absent:
|
||||
- names:
|
||||
- {{ mysql.macos.dl.tmpdir }}
|
||||
- /usr/local/mysql*
|
||||
- /Library/PreferencePanes/MySQL.prefPane
|
||||
- /Library/StartupItems/MySQLCOM
|
||||
- /Library/Receipts/mysql*
|
||||
- /Library/Receipts/MySQL*
|
||||
- /private/var/db/receipts/*mysql*
|
||||
- /Library/LaunchDaemons/com.oracle.oss.mysql.*
|
||||
|
|
@ -1,6 +1,16 @@
|
|||
# vim: ft=sls
|
||||
# vim: sts=2 ts=2 sw=2 et ai
|
||||
|
||||
{% if grains.os == 'MacOS' %}
|
||||
MacOS:
|
||||
macos:
|
||||
user: {{ salt['pillar.get']('mysql:user', salt['cmd.run']("stat -f '%Su' /dev/console")) }}
|
||||
group: {{ salt['pillar.get']('mysql:group', salt['cmd.run']("stat -f '%Sg' /dev/console")) }}
|
||||
{% endif %}
|
||||
|
||||
Debian:
|
||||
service: mysql
|
||||
|
||||
Ubuntu:
|
||||
service: mysql
|
||||
devpkg: libmysqlclient-dev
|
||||
|
|
|
@ -156,6 +156,13 @@ mysqld:
|
|||
- file: mysql_server_config
|
||||
{% endif %}
|
||||
|
||||
mysql_what_is_status_of_{{ mysql.service }}:
|
||||
cmd.run:
|
||||
- names:
|
||||
- service {{ mysql.service }} status
|
||||
- onfail:
|
||||
- service: mysqld
|
||||
|
||||
# official oracle mysql repo
|
||||
# creates this file, that rewrites /etc/mysql/my.cnf setting
|
||||
# so, make it empty
|
||||
|
|
|
@ -134,3 +134,50 @@ mysql:
|
|||
# Install dev package - defaults to False
|
||||
install: False
|
||||
|
||||
macos:
|
||||
products:
|
||||
community_server:
|
||||
enabled: True # default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-8.0.11-macos10.13-x86_64.dmg
|
||||
sum: 'md5=602a84390ecf3d82025b1d99fc594124'
|
||||
workbench:
|
||||
enabled: True # default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.11-rc-macos-x86_64.dmg
|
||||
sum: 'md5=37c5ae5bd75a4e1804ae6e0127d68611'
|
||||
cluster:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-cluster-gpl-7.6.6-macos10.13-x86_64.dmg
|
||||
sum: 'md5=0df975908e7d8e4e8c1003d95edf4721'
|
||||
router:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-router-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=8dd536f2f223933ecbfb8b19e54ee2f6'
|
||||
utilities:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-utilities-1.6.5-macos10.12.dmg
|
||||
sum: 'md5=4c8e75bb217b8293dcdeb915b649c2c8'
|
||||
shell:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-shell-8.0.11-macos10.13-x86-64bit.dmg
|
||||
sum: 'md5=43db4f0fc39f88c1d7be4a4f52cec363'
|
||||
proxy:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-osx10.7-x86-32bit.tar.gz
|
||||
sum: 'md5=107df22412aa8c483d2021e1af24ee22'
|
||||
connnector:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-connector-nodejs-8.0.11.tar.gz
|
||||
sum: 'md5=dece7fe5607918ba68499ef07c31508d'
|
||||
forvisualstudio:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-visualstudio-2.0.4-src.zip
|
||||
sum: 'md5=fcf39316505ee2921e31a431eae77a9c'
|
||||
forexcel:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-for-excel-1.3.6-src.zip
|
||||
sum: 'md5=2cc8b65eb72a1b07a6e4e2665e2a29e3'
|
||||
notifier:
|
||||
enabled: False #default
|
||||
url: https://downloads.mysql.com/archives/get/file/mysql-notifier-1.1.6-src.zip
|
||||
sum: 'md5=349f1994681763fd6626a8ddf6be5363'
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue