blob: a58e1632d2ba154394afd6bb876d7c27293525e2 [file] [log] [blame]
Filip Pytloun5b3c12e2015-10-06 16:28:32 +02001{%- from "mysql/map.jinja" import server with context %}
2
3{%- if server.admin is defined %}
4
5mariadb_debconf:
6 debconf.set:
7 - name: mariadb-server
8 - data:
9 'mysql-server/root_password': {'type':'string','value':'{{ server.admin.password }}'}
10 'mysql-server/root_password_again': {'type':'string','value':'{{ server.admin.password }}'}
11 - require_in:
12 - pkg: mysql_packages
13
14{%- endif %}
15
16mysql_packages:
17 pkg.installed:
18 - names: {{ server.pkgs }}
19
20{%- if server.version != '5.6' %}
21
22mysql_config:
23 file.managed:
24 - name: {{ server.config }}
25 - source: salt://mysql/conf/my.cnf.{{ grains.os_family }}
26 - mode: 644
27 - template: jinja
28 - require:
29 - pkg: mysql_packages
30 - watch_in:
31 - service: mysql_service
32
33{%- endif %}
34
35mysql_service:
36 service.running:
37 - name: {{ server.service }}
38 - enable: true
39
40mysql_config_dir:
41 file.directory:
42 - name: /etc/mysql/conf.d
43 - makedirs: true
44 - mode: 755
45
46mysql_dirs:
47 file.directory:
48 - names:
49 - /root/mysql/scripts
50 - /root/mysql/flags
51 - /root/mysql/data
52 - mode: 700
53 - user: root
54 - group: root
55 - makedirs: true
56 - require:
57 - pkg: mysql_packages
58
59/root/mysql/flags:
60 file.directory:
61 - mode: 700
62 - user: root
63 - group: root
64 - makedirs: true
65 - require:
66 - pkg: mysql_packages
67
68
69{#
70# Backup part
71#}
72
73{#
74# Backup part - automysqlbackup
75#}
76
77{% for backup_engine in pillar.mysql.server.get("backup_engine", []) %}
78
79{%- if backup_engine.get("name", []) == "automysqlbackup" %}
80
81{%- if grains.osfullname in ['CentOS'] %}
82
83mysql_backup1_pkgs:
84 pkg.installed:
85 - names:
86 - pigz
87 - pbzip2
88 - cronie
89 - mailx
90
91{%- elif grains.osfullname in ['Ubuntu'] %}
92
93mysql_backup2_pkgs:
94 pkg.installed:
95 - names:
96 - mailutils
97 - pigz
98 - pbzip2
99
100{%- endif %}
101
102{%- if grains.osfullname in ['CentOS'] or grains.osfullname in ['Ubuntu'] %}
103
104mysql_backup_dirs:
105 file.directory:
106 - names:
107 - /root/mysql/scripts
108 - /root/mysql/data
109 - /etc/automysqlbackup
110 - mode: 700
111 - user: root
112 - group: root
113 - makedirs: true
114 - require:
115{%- if grains.osfullname in ['CentOS'] %}
116 - pkg: mysql_backup1_pkgs
117{%- elif grains.osfullname in ['Ubuntu'] %}
118 - pkg: mysql_backup2_pkgs
119{%- endif %}
120
121mysql_automysqlbackup_conf:
122 file.managed:
123 - name: /etc/automysqlbackup/automysqlbackup.conf
124 - source: salt://mysql/conf/automysqlbackup.conf
125 - mode: 644
126 - template: jinja
127 - require:
128 - file: mysql_backup_dirs
129
130mysql_automysqlbackup_script:
131 file.managed:
132 - name: /root/mysql/scripts/automysqlbackup
133 - source: salt://mysql/conf/automysqlbackup
134 - mode: 755
135 - require:
136 - file: mysql_backup_dirs
137
138mysql_automysqlbackup_cron:
139 file.managed:
140 - name: /etc/cron.daily/automysqlbackup
141 - source: salt://mysql/conf/automysqlbackup.cron
142 - mode: 755
143 - template: jinja
144 - require:
145 - file: mysql_backup_dirs
146
147{%- endif %}
148
149{%- endif %}
150
151{%- endfor %}
152