Dduvall has uploaded a new change for review. https://gerrit.wikimedia.org/r/275138
Change subject: labs: Database server to support Program Dashboard ...................................................................... labs: Database server to support Program Dashboard Provision a basic MariaDB server to store Program Dashboard data. The data directory is kept on an LVM volume to allow for periodic snapshotting. Bug: T127105 Change-Id: Ie816ea8f4127c8a2c9a817c8d815f3b7956b0cde --- A hieradata/common/programdashboard/database.yaml A modules/programdashboard/manifests/database.pp A modules/programdashboard/templates/my.cnf.erb A modules/role/manifests/programdashboard/database.pp 4 files changed, 100 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/38/275138/1 diff --git a/hieradata/common/programdashboard/database.yaml b/hieradata/common/programdashboard/database.yaml new file mode 100644 index 0000000..1fb7ec6 --- /dev/null +++ b/hieradata/common/programdashboard/database.yaml @@ -0,0 +1,2 @@ +datadir: /srv/sqldata +tmpdir: /srv/tmp diff --git a/modules/programdashboard/manifests/database.pp b/modules/programdashboard/manifests/database.pp new file mode 100644 index 0000000..ae27f68 --- /dev/null +++ b/modules/programdashboard/manifests/database.pp @@ -0,0 +1,40 @@ +# = Class: programdashboard::database +# +# A database server for the the Program Dashboard Rails application. +# +# === Parameters +# +# [*datadir*] +# MariaDB data directory. An XFS formatted LVM volume will be created from +# 80% of the instance volume's free space and mounted at this directory. +# +# [*tmpdir*] +# MariaDB temporary directory. An XFS formatted LVM volume will be created +# from 20% of the instance volume's free space and mounted at this +# directory. +# +class programdashboard::database( + $datadir, + $tmpdir, +) { + include mariadb::packages + + labs_lvm::volume { 'dashboard-data': + mountat => $datadir, + size => '80%FREE', + } + + labs_lvm::volume { 'dashboard-tmp': + mountat => $tmpdir, + size => '100%FREE', + require => Labs_lvm::Volume['dashboard-db'], + } + + class { 'mariadb::config': + prompt => 'DASHBOARD', + config => 'programdashboard/my.cnf.erb', + datadir => $datadir, + tmpdir => $tmpdir, + require => Labs_lvm::Volume['dashboard-db', 'dashboard-tmp'], + } +} diff --git a/modules/programdashboard/templates/my.cnf.erb b/modules/programdashboard/templates/my.cnf.erb new file mode 100644 index 0000000..224abb7 --- /dev/null +++ b/modules/programdashboard/templates/my.cnf.erb @@ -0,0 +1,46 @@ +# Use for Analytics Cluster misc meta stores (Hive, Oozie, etc.) + +[client] +port = 3306 +socket = /tmp/mysql.sock + +[mysqld] + +log_error=/var/log/mysql.err + +log_bin +binlog_format = MIXED +log_slave_updates +skip-external-locking +skip-name-resolve +temp-pool +log_basename=program-dashboard + +user = mysql +socket = /tmp/mysql.sock +port = 3306 +datadir = <%= @datadir %> +tmpdir = <%= @tmpdir %> +server_id = <%= @server_id %> +read_only = <%= (@read_only == 'off' or not @read_only) ? 0 : 1 %> + +max_allowed_packet = 64M +sync_binlog = 1 +expire_logs_days = 7 + +innodb_file_per_table = 1 +innodb_log_file_size = 64M +innodb_flush_method = O_DIRECT +innodb_flush_log_at_trx_commit = 1 +innodb_buffer_pool_size = <%= (@memoryfree_mb * 0.9).floor %>M +innodb_buffer_pool_instances = <%= (@memoryfree_mb * 0.9 / 1024).ceil %> + +query_cache_type = 1 +query_cache_size = 16M + +[mysqldump] + +quick +max_allowed_packet = 16M + +#!includedir /etc/mysql/conf.d/ diff --git a/modules/role/manifests/programdashboard/database.pp b/modules/role/manifests/programdashboard/database.pp new file mode 100644 index 0000000..682b6ab --- /dev/null +++ b/modules/role/manifests/programdashboard/database.pp @@ -0,0 +1,12 @@ +# = Class: role::programdashboard::database +# +# This role sets up a database server for the Program Dashboard Rails +# application. +# +class role::programdashboard::database { + include ::programdashboard::database + + system::role { 'role::programdashboard::database': + description => 'Program Dashboard database server', + } +} -- To view, visit https://gerrit.wikimedia.org/r/275138 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie816ea8f4127c8a2c9a817c8d815f3b7956b0cde Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Dduvall <dduv...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits