2016-07-22 19:21:14 +03:00
# puppet-orchestrator-for-mysql
2016-11-22 20:23:57 +03:00
This module is to install the MySQL tool called Orchestrator via puppet. Orchestrator is used for managing replication topologies. See https://github.com/github/orchestrator for instructions on appopriate configuration and setup.
2016-08-04 03:29:32 +03:00
# Usage
```
$config_override = {
'Debug' => true,
'ReadOnly' => false,
'MySQLOrchestratorHost' => 'orchestrator.example.com',
'MySQLOrchestratorPort' => 3306,
'MySQLOrchestratorDatabase' => 'orchestrator',
'RemoveTextFromHostnameDisplay' => '.example.com:3306',
'SlaveLagQuery' => 'select lag from test.heartbeat_table',
'DiscoverByShowSlaveHosts' => false,
'DetectClusterAliasQuery' => 'select cluster_alias from test.cluster_info_table where 1=1',
2016-12-06 21:27:10 +03:00
'DetectClusterDomainQuery' => 'select cluster_domain from test.cluster_info_table where 1=1',
2016-08-04 03:29:32 +03:00
'DataCenterPattern' => '.*-(.*)-.*[.].*[.]example[.]com',
'PhysicalEnvironmentPattern' => '.*-.*-(.*)[.].*[.]example[.]com',
'PseudoGTIDPattern' => '`heartbeat` (ts, server_id, file, position, relay_master_log_file, exec_master_log_pos) VALUES',
'PseudoGTIDPatternIsFixedSubstring' => true,
'PseudoGTIDMonotonicHint' => 'heartbeat',
'DetectPseudoGTIDQuery' => 'select count(*)>0 as pseudo_gtid_exists from test.heartbeat_table where ts > NOW() - INTERVAL 2 DAY;',
'ProblemIgnoreHostnameFilters' => [
'test-server-mysql',
],
'PromotionIgnoreHostnameFilters' => [
'test-server-mysql',
],
'AuditLogFile' => '',
'AuthenticationMethod' => 'token',
'FailureDetectionPeriodBlockMinutes' => 60,
'RecoveryPollSeconds' => 5,
'RecoveryPeriodBlockSeconds' => 600,
'RecoveryIgnoreHostnameFilters' => [],
'RecoverMasterClusterFilters' => [
'mysqla',
'mysqlb',
],
'RecoverIntermediateMasterClusterFilters' => [
'mysqlb',
'mysqlc',
],
'OnFailureDetectionProcesses' => [
"sudo -i recovery-handler -t 'detection' -f '{failureType}' -h '{failedHost}' -C '{failureCluster}' -n '{countSlaves}'"
],
'PreFailoverProcesses' => [
"sudo -i recovery-handler -t 'pre-failover' -f '{failureType}' -h '{failedHost}' -C '{failureCluster}' -n '{countSlaves}'"
],
'PostFailoverProcesses' => [
"sudo -i recovery-handler -t 'post-failover' -f '{failureType}' -h '{failedHost}' -H '{successorHost}' -C '{failureCluster}' -n '{countSlaves}'"
],
'PostUnsuccessfulFailoverProcesses' => [],
'PostMasterFailoverProcesses' => [
"sudo setuidgid orc_user ssh {failedHost} 'sudo -i do_something_on_failed_host > /dev/null 2> /dev/null'",
"sudo setuidgid orc_user ssh {successorHost} 'sudo -i do_something_on_new_host > /dev/null 2> /dev/null'",
],
'PostIntermediateMasterFailoverProcesses' => [
],
'CoMasterRecoveryMustPromoteOtherCoMaster' => true,
'DetachLostSlavesAfterMasterFailover' => true,
'ApplyMySQLPromotionAfterMasterFailover' => false,
'MasterFailoverLostInstancesDowntimeMinutes' => 60,
'PostponeSlaveRecoveryOnLagMinutes' => 10,
'GraphitePollSeconds' => 60,
'GraphiteAddr' => 'graphite.example.com:2113',
'GraphitePath' => 'hosts.{hostname}.orchestrator',
'GraphiteConvertHostnameDotsToUnderscores' => true,
}
class { '::orchestrator':
config_override => $config_override,
package_ensure => 'latest',
package_manage => true,
}
```
2016-11-22 20:23:57 +03:00
# Assumptions
* Puppetlab's stdlib is used by this module.
* The orchestrator deb/rpm package is available to puppet if `orchestrator::params::package_manage` is `true` .
2017-01-24 01:09:50 +03:00
## Status
Stable and in active development.
## Contributions
Contributions are encouraged. See [CONTRIBUTING.md ](https://github.com/github/puppet-orchestrator-for-mysql/blob/master/CONTRIBUTING.md ) for more information.
## License
Licensed under the [MIT License ](http://en.wikipedia.org/wiki/MIT_License ).
The full license text is available in [LICENSE ](https://github.com/github/puppet-orchestrator-for-mysql/blob/master/LICENSE ).