Added nodepool::mysql class
- Created nodepool::mysql class, which includes mysql stuff from init.pp. This allows to host database on separated host than the one running nodepool. - Discarded creation of 'max_connections.cnf' file. Instead, use 'max_connections' from '::mysql::server' config_hash/override_options. Change-Id: Ic745875b69563ed3834e99533227ca3d1150156b
This commit is contained in:
parent
b72fc61717
commit
780df18752
@ -38,42 +38,21 @@ class nodepool (
|
|||||||
$jenkins_masters = [],
|
$jenkins_masters = [],
|
||||||
$build_workers = '1',
|
$build_workers = '1',
|
||||||
$upload_workers = '4',
|
$upload_workers = '4',
|
||||||
|
$install_mysql = true,
|
||||||
|
$mysql_db_name = 'nodepool',
|
||||||
|
$mysql_host = 'localhost',
|
||||||
|
$mysql_user_name = 'nodepool',
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
if($install_mysql) {
|
||||||
$mysql_data = load_module_metadata('mysql', true)
|
class { '::nodepool::mysql' :
|
||||||
if $mysql_data == {} {
|
mysql_db_name => $mysql_db_name,
|
||||||
class { '::mysql::server':
|
mysql_root_password => $mysql_root_password,
|
||||||
config_hash => {
|
mysql_user_host => $mysql_host,
|
||||||
'root_password' => $mysql_root_password,
|
mysql_user_name => $mysql_user_name,
|
||||||
'default_engine' => 'InnoDB',
|
mysql_password => $mysql_password,
|
||||||
'bind_address' => '127.0.0.1',
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else { # If it has metadata.json, assume it's new enough to use this interface
|
|
||||||
class { '::mysql::server':
|
|
||||||
root_password => $mysql_root_password,
|
|
||||||
override_options => {
|
|
||||||
'mysqld' => {
|
|
||||||
'default-storage-engine' => 'InnoDB',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include ::mysql::server::account_security
|
|
||||||
|
|
||||||
mysql::db { 'nodepool':
|
|
||||||
user => 'nodepool',
|
|
||||||
password => $mysql_password,
|
|
||||||
host => 'localhost',
|
|
||||||
grant => ['all'],
|
|
||||||
charset => 'utf8',
|
|
||||||
require => [
|
|
||||||
Class['mysql::server'],
|
|
||||||
Class['mysql::server::account_security'],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
$packages = [
|
$packages = [
|
||||||
'build-essential',
|
'build-essential',
|
||||||
|
50
manifests/mysql.pp
Normal file
50
manifests/mysql.pp
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# == Class: nodepool::mysql
|
||||||
|
#
|
||||||
|
class nodepool::mysql (
|
||||||
|
$mysql_password,
|
||||||
|
$mysql_root_password,
|
||||||
|
$mysql_bind_address = '127.0.0.1',
|
||||||
|
$mysql_default_engine = 'InnoDB',
|
||||||
|
$mysql_db_name = 'nodepool',
|
||||||
|
$mysql_max_connections = 8192,
|
||||||
|
$mysql_user_host = 'localhost',
|
||||||
|
$mysql_user_name = 'nodepool',
|
||||||
|
) {
|
||||||
|
|
||||||
|
$mysql_data = load_module_metadata('mysql', true)
|
||||||
|
if ($mysql_data == {}) {
|
||||||
|
class { '::mysql::server' :
|
||||||
|
config_hash => {
|
||||||
|
'bind_address' => $mysql_bind_address,
|
||||||
|
'default_engine' => $mysql_default_engine,
|
||||||
|
'max_connections' => $mysql_max_connections,
|
||||||
|
'root_password' => $mysql_root_password,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { # If it has metadata.json, assume it's new enough to use this interface
|
||||||
|
class { '::mysql::server' :
|
||||||
|
override_options => {
|
||||||
|
'mysqld' => {
|
||||||
|
'default-storage-engine' => $mysql_default_engine,
|
||||||
|
'max_connections' => $mysql_max_connections,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
root_password => $mysql_root_password,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include ::mysql::server::account_security
|
||||||
|
|
||||||
|
mysql::db { $mysql_db_name :
|
||||||
|
user => $mysql_user_name,
|
||||||
|
password => $mysql_password,
|
||||||
|
host => $mysql_user_host,
|
||||||
|
grant => ['all'],
|
||||||
|
charset => 'utf8',
|
||||||
|
require => [
|
||||||
|
Class['mysql::server'],
|
||||||
|
Class['mysql::server::account_security'],
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
[database]
|
[database]
|
||||||
dburi=mysql+pymysql://nodepool:<%= @mysql_password %>@localhost/nodepool
|
dburi=mysql+pymysql://<%= @mysql_user_name %>:<%= @mysql_password %>@<%= @mysql_host %>/<%= @mysql_db_name %>
|
||||||
|
|
||||||
<% @jenkins_masters.each do |master| -%>
|
<% @jenkins_masters.each do |master| -%>
|
||||||
[jenkins "<%= master['name'] -%>"]
|
[jenkins "<%= master['name'] -%>"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user