25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# File 'manifests/db.pp', line 25
class storm::db (
String $root_password,
String $storm_username,
String $storm_password,
Data $override_options,
Integer $limit_no_file,
String $fqdn_hostname = $fqdn,
) {
## MySQL Client
include 'mysql::client'
$service_dir='/etc/systemd/system/mariadb.service.d'
file { $service_dir:
ensure => directory,
owner => 'root',
group => 'root',
mode => '0644',
}
$service_file='/etc/systemd/system/mariadb.service.d/limits.conf'
$service_template_file='storm/etc/systemd/system/mariadb.service.d/limits.conf.erb'
file { $service_file:
ensure => file,
content => template($service_template_file),
mode => '0644',
owner => 'root',
group => 'root',
require => [File[$service_dir]],
}
## MySQL Server
class { 'mysql::server':
root_password => $root_password,
manage_config_file => true,
restart => true,
override_options => $override_options,
databases => {
'storm_db' => {
ensure => 'present',
charset => 'utf8',
collate => 'utf8_general_ci',
},
'storm_be_ISAM' => {
ensure => 'present',
charset => 'utf8',
collate => 'utf8_general_ci',
},
},
require => [File[$service_file]],
}
$short_hostname = regsubst($fqdn_hostname, '^([^.]*).*$', '\1')
notice("Computed short hostname for ${fqdn_hostname} => ${short_hostname}")
mysql_user { "${storm_username}@${fqdn_hostname}":
ensure => 'present',
password_hash => mysql::password($storm_password),
require => [Class['mysql::server']],
}
mysql_grant { "${storm_username}@${fqdn_hostname}/storm_db.*":
user => "${storm_username}@${fqdn_hostname}",
table => 'storm_db.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@${fqdn_hostname}"]],
}
mysql_grant { "${storm_username}@${fqdn_hostname}/storm_be_ISAM.*":
user => "${storm_username}@${fqdn_hostname}",
table => 'storm_be_ISAM.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@${fqdn_hostname}"]],
}
mysql_user { "${storm_username}@${short_hostname}":
ensure => 'present',
password_hash => mysql::password($storm_password),
require => [Class['mysql::server']],
}
mysql_grant { "${storm_username}@${short_hostname}/storm_db.*":
user => "${storm_username}@${short_hostname}",
table => 'storm_db.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@${short_hostname}"]],
}
mysql_grant { "${storm_username}@${short_hostname}/storm_be_ISAM.*":
user => "${storm_username}@${short_hostname}",
table => 'storm_be_ISAM.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@${short_hostname}"]],
}
mysql_user { "${storm_username}@%":
ensure => 'present',
password_hash => mysql::password($storm_password),
require => [Class['mysql::server']],
}
mysql_grant { "${storm_username}@%/storm_db.*":
user => "${storm_username}@%",
table => 'storm_db.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@%"]],
}
mysql_grant { "${storm_username}@%/storm_be_ISAM.*":
user => "${storm_username}@%",
table => 'storm_be_ISAM.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@%"]],
}
mysql_user { "${storm_username}@localhost":
ensure => 'present',
password_hash => mysql::password($storm_password),
require => [Class['mysql::server']],
}
mysql_grant { "${storm_username}@localhost/storm_db.*":
user => "${storm_username}@localhost",
table => 'storm_db.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@localhost"]],
}
mysql_grant { "${storm_username}@localhost/storm_be_ISAM.*":
user => "${storm_username}@localhost",
table => 'storm_be_ISAM.*',
privileges => 'ALL',
require => [Mysql_user["${storm_username}@localhost"]],
}
}
|