cookbook 'mysqler', '~> 1.0.6'
mysqler (4) Versions 1.0.6 Follow0
Installs and configures MySQL client and server
cookbook 'mysqler', '~> 1.0.6', :supermarket
knife supermarket install mysqler
knife supermarket download mysqler
A cookbook to install MySQL server and configure instances as needed.
Description
The cookbook allows you to install mysql server, configure several instances on the same machine based on parameters that should be configured for each server.
Supported Platforms
Debian
Chef
Production tested on chef 11.16.4 version.
Recipes
-
mysqler::default
- The default recipe. Performes all basic installation and configuration of mysql server -
mysqler::configure_server
- Configures Mysql instance -
mysqler::add_repository
- Adds mysql repository -
mysqler::build_replica_member
- Creates replication member based on the configuration -
mysqler::install_mysql_gem
- Installs mysql gem for chef to allow connection and query on remote DB -
mysqler::install_server
- Installs mysql-server from the repository -
mysqler::manage_users
- manages system users for mysql -
mysqler::poke
- poke the servers to create data for replication. Uses test database and poke table.
Additional helper recipes
-
mysqler::handle_backward_compatibility
- add backward compatibility to previously installed version of mysql - linking binaries to their previous location -
mysqler::remove_backward_compatibility
- remove previously setup backward compatibility
Important
We DO overwrite several attributes of percona cookbook
default["percona"]["skip_passwords"] = true
default["percona"]["apt_keyserver"] = "keyserver.ubuntu.com"
default["percona"]["backup"]["configure"] = false
Usage
Basic
Create a role for each of your mysql database schemas as following:
name "mysql_my_app"
description "mysql for my_app"
run_list('recipe[mysqler]')
default_attributes({
'mysqler' => {
'app_name' => 'my_app',
'innodb_buffer_pool_size' => '4G' ,
.
.
.
.
'mysql_rebuild' => {
'xtra_bkp_src' => {
'dc_name1' => 'hostname',
'dc_name2' => {'host' => 'hostname2', 'master' => 1}
},
'dump_rebuild_src' => {
'dc_name1' => 'hostname'
}
}
}
})
Multi-Instance
Create the following roles:
-
mysql_parent
for the physical server -
mysql_[appname]
for each instance
For the physical server - perform the mysql server installation and create fake chef nodes as needed. You can use our cookbook fake-chef-client for that purpose.
name "mysql_parent"
description "mysql parent server"
run_list('recipe[mysqler::install_server]', recipe[fake-chef-client])
default_attributes({
})
Create a role for each of your mysql database schemas as following:
name "mysql_my_app"
description "mysql parent server"
run_list('recipe[mysqler::configure_server]')
default_attributes({
'mysqler' => {
'app_name' => 'my_app',
'innodb_buffer_pool_size' => '4G' ,
.
.
.
.
'mysql_rebuild' => {
'xtra_bkp_src' => {
'dc_name1' => 'hostname',
'dc_name2' => {'host' => 'hostname2', 'master' => 1}
},
'dump_rebuild_src' => {
'dc_name1' => 'hostname'
}
}
}
})
Databags
Databag examples can be found in databag_examples
folder
Acknowledgements
This cookbook was forked from percona cookbook several years ago, and was changed since.
Supplementary Cookbook
fake-chef-client
- <A>https://github.com/wix/fake-chef-client</a>
Contributing
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write your change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
License and Authors
Authors: Wix.com
License: Apache 2.0
Dependent cookbooks
apt >= 0.0.0 |
openssl >= 0.0.0 |
magic_shell >= 0.0.0 |
percona >= 0.0.0 |
logrotate >= 0.0.0 |
build-essential >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
1.0.6 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.6 failed this metric
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mysqler/recipes/add_repository.rb:1
FC064: Ensure issues_url is set in metadata: mysqler/metadata.rb:1
FC065: Ensure source_url is set in metadata: mysqler/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mysqler/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mysqler/metadata.rb:1
FC077: Metadata uses the deprecated "replaces" keyword: mysqler/metadata.rb:1
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:56
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:54
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:71
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.6 passed this metric
Testing File Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.6 failed this metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.6 failed this metric
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mysqler/recipes/add_repository.rb:1
FC064: Ensure issues_url is set in metadata: mysqler/metadata.rb:1
FC065: Ensure source_url is set in metadata: mysqler/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mysqler/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mysqler/metadata.rb:1
FC077: Metadata uses the deprecated "replaces" keyword: mysqler/metadata.rb:1
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:56
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:54
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:71
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.6 passed this metric
Testing File Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.6 failed this metric
FC064: Ensure issues_url is set in metadata: mysqler/metadata.rb:1
FC065: Ensure source_url is set in metadata: mysqler/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mysqler/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mysqler/metadata.rb:1
FC077: Metadata uses the deprecated "replaces" keyword: mysqler/metadata.rb:1
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/database.rb:56
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:36
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:54
FC085: Resource using new_resource.updated_by_last_action to converge resource: mysqler/providers/user.rb:71
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
1.0.6 passed this metric
Testing File Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.6 failed this metric
1.0.6 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number