Skip to content

Commit d66607d

Browse files
committed
Merge pull request #78 from branan/merge_freebsd
Add freebsd support.
2 parents ece11c5 + f572b90 commit d66607d

File tree

9 files changed

+142
-24
lines changed

9 files changed

+142
-24
lines changed

manifests/config.pp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,29 @@
4444
$ssl_cert = $mysql::params::ssl_cert,
4545
$ssl_key = $mysql::params::ssl_key,
4646
$log_error = $mysql::params::log_error,
47-
$default_engine = 'UNSET'
47+
$default_engine = 'UNSET',
48+
$root_group = $mysql::params::root_group
4849
) inherits mysql::params {
4950

5051
File {
5152
owner => 'root',
52-
group => 'root',
53+
group => $root_group,
5354
mode => '0400',
5455
notify => Exec['mysqld-restart'],
5556
}
5657

58+
if $ssl and $ssl_ca == undef {
59+
fail('The ssl_ca parameter is required when ssl is true')
60+
}
61+
62+
if $ssl and $ssl_cert == undef {
63+
fail('The ssl_cert parameter is required when ssl is true')
64+
}
65+
66+
if $ssl and $ssl_key == undef {
67+
fail('The ssl_key parameter is required when ssl is true')
68+
}
69+
5770
# This kind of sucks, that I have to specify a difference resource for
5871
# restart. the reason is that I need the service to be started before mods
5972
# to the config file which can cause a refresh
@@ -75,7 +88,7 @@
7588
command => "mysqladmin -u root ${old_pw} password ${root_password}",
7689
logoutput => true,
7790
unless => "mysqladmin -u root -p${root_password} status > /dev/null",
78-
path => '/usr/local/sbin:/usr/bin',
91+
path => '/usr/local/sbin:/usr/bin:/usr/local/bin',
7992
notify => Exec['mysqld-restart'],
8093
require => File['/etc/mysql/conf.d'],
8194
}

manifests/params.pp

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,8 @@
1414

1515
$bind_address = '127.0.0.1'
1616
$port = 3306
17-
$server_package_name = 'mysql-server'
1817
$etc_root_password = false
19-
$datadir = '/var/lib/mysql'
2018
$ssl = false
21-
$ssl_ca = '/etc/mysql/cacert.pem'
22-
$ssl_cert = '/etc/mysql/server-cert.pem'
23-
$ssl_key = '/etc/mysql/server-key.pem'
2419

2520
case $::operatingsystem {
2621
"Ubuntu": {
@@ -33,30 +28,63 @@
3328

3429
case $::osfamily {
3530
'RedHat': {
31+
$basedir = '/usr'
32+
$datadir = '/var/lib/mysql'
3633
$service_name = 'mysqld'
3734
$client_package_name = 'mysql'
35+
$server_package_name = 'mysql-server'
3836
$socket = '/var/lib/mysql/mysql.sock'
3937
$config_file = '/etc/my.cnf'
4038
$log_error = '/var/log/mysqld.log'
4139
$ruby_package_name = 'ruby-mysql'
4240
$ruby_package_provider = 'gem'
4341
$python_package_name = 'MySQL-python'
4442
$java_package_name = 'mysql-connector-java'
43+
$root_group = 'root'
44+
$ssl_ca = '/etc/mysql/cacert.pem'
45+
$ssl_cert = '/etc/mysql/server-cert.pem'
46+
$ssl_key = '/etc/mysql/server-key.pem'
4547
}
4648

4749
'Debian': {
50+
$basedir = '/usr'
51+
$datadir = '/var/lib/mysql'
4852
$service_name = 'mysql'
4953
$client_package_name = 'mysql-client'
54+
$server_package_name = 'mysql-server'
5055
$socket = '/var/run/mysqld/mysqld.sock'
5156
$config_file = '/etc/mysql/my.cnf'
5257
$log_error = '/var/log/mysql/error.log'
5358
$ruby_package_name = 'libmysql-ruby'
5459
$python_package_name = 'python-mysqldb'
5560
$java_package_name = 'libmysql-java'
61+
$root_group = 'root'
62+
$ssl_ca = '/etc/mysql/cacert.pem'
63+
$ssl_cert = '/etc/mysql/server-cert.pem'
64+
$ssl_key = '/etc/mysql/server-key.pem'
65+
}
66+
67+
'FreeBSD': {
68+
$basedir = '/usr/local'
69+
$datadir = '/var/db/mysql'
70+
$service_name = 'mysql-server'
71+
$client_package_name = 'databases/mysql55-client'
72+
$server_package_name = 'databases/mysql55-server'
73+
$socket = '/tmp/mysql.sock'
74+
$config_file = '/var/db/mysql/my.cnf'
75+
$log_error = "/var/db/mysql/${::hostname}.err"
76+
$ruby_package_name = 'ruby-mysql'
77+
$ruby_package_provider = 'gem'
78+
$python_package_name = 'databases/py-MySQLdb'
79+
$java_package_name = 'databases/mysql-connector-java'
80+
$root_group = 'wheel'
81+
$ssl_ca = undef
82+
$ssl_cert = undef
83+
$ssl_key = undef
5684
}
5785

5886
default: {
59-
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
87+
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat Debian and FreeBSD")
6088
}
6189
}
6290

spec/classes/mysql_config_spec.rb

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,37 @@
1111
:datadir => '/var/lib/mysql',
1212
:default_engine => 'UNSET',
1313
:ssl => false,
14-
:ssl_ca => '/etc/mysql/cacert.pem',
15-
:ssl_cert => '/etc/mysql/server-cert.pem',
16-
:ssl_key => '/etc/mysql/server-key.pem'
1714
}
1815
end
1916

2017
describe 'with osfamily specific defaults' do
2118
{
2219
'Debian' => {
20+
:datadir => '/var/lib/mysql',
2321
:service_name => 'mysql',
2422
:config_file => '/etc/mysql/my.cnf',
25-
:socket => '/var/run/mysqld/mysqld.sock'
23+
:socket => '/var/run/mysqld/mysqld.sock',
24+
:root_group => 'root',
25+
:ssl_ca => '/etc/mysql/cacert.pem',
26+
:ssl_cert => '/etc/mysql/server-cert.pem',
27+
:ssl_key => '/etc/mysql/server-key.pem'
28+
},
29+
'FreeBSD' => {
30+
:datadir => '/var/db/mysql',
31+
:service_name => 'mysql-server',
32+
:config_file => '/var/db/mysql/my.cnf',
33+
:socket => '/tmp/mysql.sock',
34+
:root_group => 'wheel',
2635
},
2736
'Redhat' => {
37+
:datadir => '/var/lib/mysql',
2838
:service_name => 'mysqld',
2939
:config_file => '/etc/my.cnf',
30-
:socket => '/var/lib/mysql/mysql.sock'
40+
:socket => '/var/lib/mysql/mysql.sock',
41+
:root_group => 'root',
42+
:ssl_ca => '/etc/mysql/cacert.pem',
43+
:ssl_cert => '/etc/mysql/server-cert.pem',
44+
:ssl_key => '/etc/mysql/server-key.pem'
3145
}
3246
}.each do |osfamily, osparams|
3347

@@ -48,7 +62,7 @@
4862
'command' => 'mysqladmin -u root password foo',
4963
'logoutput' => true,
5064
'unless' => "mysqladmin -u root -pfoo status > /dev/null",
51-
'path' => '/usr/local/sbin:/usr/bin'
65+
'path' => '/usr/local/sbin:/usr/bin:/usr/local/bin'
5266
)}
5367

5468
it { should contain_file('/root/.my.cnf').with(
@@ -67,7 +81,7 @@
6781
'command' => 'mysqladmin -u root -pbar password foo',
6882
'logoutput' => true,
6983
'unless' => "mysqladmin -u root -pfoo status > /dev/null",
70-
'path' => '/usr/local/sbin:/usr/bin'
84+
'path' => '/usr/local/sbin:/usr/bin:/usr/local/bin'
7185
)}
7286

7387
end
@@ -116,21 +130,21 @@
116130

117131
it { should contain_file('/etc/mysql').with(
118132
'owner' => 'root',
119-
'group' => 'root',
133+
'group' => param_values[:root_group],
120134
'notify' => 'Exec[mysqld-restart]',
121135
'ensure' => 'directory',
122136
'mode' => '0755'
123137
)}
124138
it { should contain_file('/etc/mysql/conf.d').with(
125139
'owner' => 'root',
126-
'group' => 'root',
140+
'group' => param_values[:root_group],
127141
'notify' => 'Exec[mysqld-restart]',
128142
'ensure' => 'directory',
129143
'mode' => '0755'
130144
)}
131145
it { should contain_file(param_values[:config_file]).with(
132146
'owner' => 'root',
133-
'group' => 'root',
147+
'group' => param_values[:root_group],
134148
'notify' => 'Exec[mysqld-restart]',
135149
'mode' => '0644'
136150
)}
@@ -175,7 +189,7 @@
175189
'command' => 'mysqladmin -u root -pbar password foo',
176190
'logoutput' => true,
177191
'unless' => "mysqladmin -u root -pfoo status > /dev/null",
178-
'path' => '/usr/local/sbin:/usr/bin'
192+
'path' => '/usr/local/sbin:/usr/bin:/usr/local/bin'
179193
)}
180194

181195
it { should contain_file('/root/.my.cnf').with(
@@ -202,4 +216,21 @@
202216

203217
end
204218

219+
describe 'unset ssl params should fail when ssl is true on freebsd' do
220+
let :facts do
221+
{:osfamily => 'FreeBSD'}
222+
end
223+
224+
let :params do
225+
{ :ssl => true }
226+
end
227+
228+
it 'should fail' do
229+
expect do
230+
subject
231+
end.should raise_error(Puppet::Error, /required when ssl is true/)
232+
end
233+
234+
end
235+
205236
end

spec/classes/mysql_init_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@
1212
)}
1313
end
1414

15+
describe 'on a freebsd based os' do
16+
let :facts do
17+
{ :osfamily => 'FreeBSD'}
18+
end
19+
it { should contain_package('mysql_client').with(
20+
:name => 'databases/mysql55-client',
21+
:ensure => 'present'
22+
)}
23+
end
24+
1525
describe 'on a redhat based os' do
1626
let :facts do
1727
{:osfamily => 'Redhat'}

spec/classes/mysql_java_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@
1212
)}
1313
end
1414

15+
describe 'on a freebsd based os' do
16+
let :facts do
17+
{ :osfamily => 'FreeBSD'}
18+
end
19+
it { should contain_package('mysql-connector-java').with(
20+
:name => 'databases/mysql-connector-java',
21+
:ensure => 'present'
22+
)}
23+
end
24+
1525
describe 'on a redhat based os' do
1626
let :facts do
1727
{:osfamily => 'Redhat'}

spec/classes/mysql_python_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@
1212
)}
1313
end
1414

15+
describe 'on a freebsd based os' do
16+
let :facts do
17+
{ :osfamily => 'FreeBSD'}
18+
end
19+
it { should contain_package('python-mysqldb').with(
20+
:name => 'databases/py-MySQLdb',
21+
:ensure => 'present'
22+
)}
23+
end
24+
1525
describe 'on a redhat based os' do
1626
let :facts do
1727
{:osfamily => 'Redhat'}

spec/classes/mysql_ruby_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@
1515
)}
1616
end
1717

18+
describe 'on a freebsd based os' do
19+
let :facts do
20+
{ :osfamily => 'FreeBSD'}
21+
end
22+
it { should contain_package('ruby_mysql').with(
23+
:name => 'ruby-mysql',
24+
:ensure => 'present',
25+
:provider => 'gem'
26+
)}
27+
end
28+
1829
describe 'on a redhat based os' do
1930
let :facts do
2031
{:osfamily => 'Redhat'}

spec/classes/mysql_server_spec.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
let :constant_parameter_defaults do
55
{:config_hash => {},
66
:package_ensure => 'present',
7-
:package_name => 'mysql-server'
87
}
98
end
109

@@ -27,10 +26,16 @@
2726
describe 'with osfamily specific defaults' do
2827
{
2928
'Debian' => {
30-
:service_name => 'mysql'
29+
:service_name => 'mysql',
30+
:package_name => 'mysql-server'
31+
},
32+
'FreeBSD' => {
33+
:service_name => 'mysql-server',
34+
:package_name => 'databases/mysql55-server'
3135
},
3236
'Redhat' => {
33-
:service_name => 'mysqld'
37+
:service_name => 'mysqld',
38+
:package_name => 'mysql-server'
3439
}
3540
}.each do |osfamily, osparams|
3641

templates/my.cnf.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ nice = 0
88
user = mysql
99
socket = <%= socket %>
1010
port = <%= port %>
11-
basedir = /usr
11+
basedir = <%= basedir %>
1212
datadir = <%= datadir %>
1313
tmpdir = /tmp
1414
skip-external-locking

0 commit comments

Comments
 (0)