cookbook 'mariadb-enterprise', '~> 0.0.9'
The mariadb-enterprise cookbook has been deprecated
Author provided reason for deprecation:
The mariadb-enterprise cookbook has been deprecated and is no longer being maintained by its authors. Use of the mariadb-enterprise cookbook is no longer recommended.
mariadb-enterprise (6) Versions 0.0.9 Follow4
MariaDB Enterprise Chef Cookbook
cookbook 'mariadb-enterprise', '~> 0.0.9', :supermarket
knife supermarket install mariadb-enterprise
knife supermarket download mariadb-enterprise
MariaDB Enterprise Chef Cookbook
The MariaDB Enterprise Chef Cookbook, mariadb-enterprise, is a library cookbook that provides resource primitives (LWRPs) for use in recipes and a few ready to use recipes: installation, uninstallation, and starting the MariaDB Enterprise Server instance.
Note: For the Cookbook to be able to set up the MariaDB Enterprise Repository and download packages, you need to provide the Cookbook with your MariaDB Enterprise Download Token. You can find the token on My Portal. Look for the Download Token associated with the contract(s) in the Your Subscriptions section. If you do not have a MariaDB Enterprise subscription/contract, you can create an account at My Portal, sign the Evaluation Agreement, and try MariaDB Enterprise as an Evaluation User.
Scope
This cookbook supports MariaDB Enterprise Server.
Requirements
- Chef 11 or higher
- Ruby 1.9 or higher (preferably from the Chef full-stack installer)
- Network access to the MariaDB Enterprise Repository
Usage
Install the most-recent stable version of MariaDB Enterprise Server like this:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::install]
Or, use the MariaDB Enterprise Chef Cookbook in a Vagrantfile:
config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "<bla-bla>/cookbooks" chef.provisioning_path = "/tmp/vagrant-chef/chef-solo" chef.json = { :maria => { version: '10.0', token: 'abcd-1234' } } chef.add_recipe "mariadb-enterprise::install" end
You can also include the MariaDB Enterprise Chef Cookbook into your own cookbook. Create a dependency on mariadb-enterprise
in your cookbook's metadata.rb file like this:
depends 'mariadb-enterprise', '~> 0'
Then, in your recipe:
mysql_service 'foo' do port '3306' version '5.5' initial_root_password 'change me' action [:create, :start] end
The service name on the OS is mysql-foo
. You can manually start and stop it with service mysql-foo start
and service mysql-foo stop
.
You can put extra configuration into the correct conf.d directory for your OS by using the mysql_config
resource, like this:
mysql_service 'foo' do port '3306' version '5.5' initial_root_password 'change me' action [:create, :start] end mysql_config 'foo' do source 'my_extra_settings.erb' notifies :restart, 'mysql_service[foo]' action :create end
Resources Overview
Recipes
install
Set up the MariaDB Enterprise Repository and install MariaDB Enterprise Server.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::install]
Parameters are:
-
mariadb::token
- your secret token -
mariadb::version
- version of Maria DB
uninstall
Removes MariaDB Enterprise Server.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::uninstall]
purge
Removes MariaDB Enterprise Server, remove all data and configurations, and disable/remove the MariaDB Enterprise Repository.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::purge]
start
Creates (but does not install) and starts MariaDB Enterprise Server.
config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "<bla-bla>/cookbooks" chef.provisioning_path = "/tmp/vagrant-chef/chef-solo" chef.json = { :mariadb => { bind_address: '127.0.0.1' } } chef.add_recipe "mariadb-enterprise::start" end
Parameters are:
-
mariadb::initial_root_password
- root password -
mariadb::bind_address
- bind address -
mariadb::port
- port -
mariadb::socket
- socket file -
mariadb::data_dir
- data directory, /var/lib/mysql-<instance name> by default
install_backuper
Installs MariaDB backuper package (Percona Xtrabackup).
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::install_backuper]
or
config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "<bla-bla>/cookbooks" chef.provisioning_path = "/tmp/vagrant-chef/chef-solo" chef.json = { :mariadb => { token: 'MY SECRET TOKEN' } } chef.add_recipe "mariadb-enterprise::install_backuper" end
Params:
mariadb::token
- your secret token, you can get it on mariadb.com.
uninstall_backuper
Uninstalls MariaDB backuper.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::uninstall_backuper]
backup
Creates DB backup.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::backup]
Params:
-
mariadb::instance
- instance what backup is created for (see ) -
mariadb::backups_dir
- directory where backups are stored (/data/backups/mysql by default) -
mariadb::root_password
- your DB's root password
restore
Restores the last (by default) backup.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::restore]
Params:
-
mariadb::instance
- instance what backup is created for (see ) -
mariadb::restore_source_dir
- directory where particular backup is stored (by default the last is used) -
mariadb::backups_dir
- directory where backups are stored (/data/backups/mysql by default) -
mariadb::root_password
- your DB's root password
Libraries
mysql_service
The mysql_service
resource manages the basic plumbing needed to get a
MySQL server instance running with minimal configuration.
The :create
action handles package installation, support
directories, socket files, and other operating system level concerns.
The internal configuration file contains just enough to get the
service up and running, then loads extra configuration from a conf.d
directory. Further configurations are managed with the mysql_config
resource.
- If the
data_dir
is empty, a database will be initialized, and a root user will be set up withinitial_root_password
. If this directory already contains database files, no action will be taken.
The :start
action starts the service on the machine using the
appropriate provider for the platform. The :start
action should be
omitted when used in recipes designed to build containers.
Example
mysql_service 'default' do version '5.7' bind_address '0.0.0.0' port '3306' data_dir '/data' initial_root_password 'Ch4ng3me' action [:create, :start] end
Please note that when using notifies
or subscribes
, the resource
to reference is mysql_service[name]
, not service[mysql]
.
Parameters
charset
- specifies the default character set. Defaults toutf8
.data_dir
- determines where the actual data files are kept
on the machine. This is useful when mounting external storage. When
omitted, it will default to the platform's native location.initial_root_password
- allows the user to specify the initial
root password for mysql when initializing new databases.
This can be set explicitly in a recipe, driven from a node
attribute, or from data_bags. When omitted, it defaults to
ilikerandompasswords
. Please be sure to change it.instance
- A string to identify the MySQL service. By convention,
to allow for multiple instances of themysql_service
, directories
and files on disk are namedmysql-<instance_name>
. Defaults to the
resource name.bind_address
- determines the listen IP address for the mysqld service. When
omitted, it will be determined by MySQL. If the address is "regular" IPv4/IPv6
address (e.g 127.0.0.1 or ::1), the server accepts TCP/IP connections only for
that particular address. If the address is "0.0.0.0" (IPv4) or "::" (IPv6), the
server accepts TCP/IP connections on all IPv4 or IPv6 interfaces.port
- determines the listen port for the mysqld service. When
omitted, it will default to '3306'.run_group
- The name of the system group themysql_service
should run as. Defaults to 'mysql'.run_user
- The name of the system user themysql_service
should
run as. Defaults to 'mysql'.socket
- determines where to write the socket file for the
mysql_service
instance. Useful when configuring clients on the
same machine to talk over socket and skip the networking stack.
Defaults to a calculated value based on platform and instance name.
Actions
-
:create
- Configures everything but the underlying operating system service. -
:delete
- Removes everything but the package and data_dir. -
:start
- Starts the underlying operating system service -
:stop
- Stops the underlying operating system service -
:restart
- Restarts the underlying operating system service -
:reload
- Reloads the underlying operating system service
backup
mysql_backup 'instance' do restore_source_dir "/data/backups/mysql/2010-05-06-12-47-00" backups_dir "/data/backups/mysql" root_password 'root_password' action :restore end
There are two actions: :create
and :restore
, parameters lists are the same with lists for appropriate recipes.
Providers
Chef selects the appropriate provider based on platform and version,
but you can specify one if your platform support it.
mysql_service[instance-1] do port '1234' data_dir '/mnt/lottadisk' provider Chef::Provider::MysqlService::Sysvinit action [:create, :start] end
Chef::Provider::MysqlService
- Configures everything needed t run
a MySQL service except the platform service facility. This provider
should never be used directly. The:start
,:stop
,:restart
, and
:reload
actions are stubs meant to be overridden by the providers
below.Chef::Provider::MysqlService::Systemd
- Starts amysql_service
using SystemD. Manages the unit file and activation stateChef::Provider::MysqlService::Sysvinit
- Starts amysql_service
using SysVinit. Manages the init script and status.Chef::Provider::MysqlService::Upstart
- Starts amysql_service
using Upstart. Manages job definitions and status.
License
Forked from https://github.com/chef-cookbooks/mysql
Copyright:: 2009-2014 Chef Software, Inc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
0.0.9 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.0.9 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
0.0.9 failed this metric
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:19
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:21
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:23
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:7
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:8
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:9
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:10
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:11
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:12
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:13
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:14
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:15
FC064: Ensure issues_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC065: Ensure source_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mariadb-enterprise/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mariadb-enterprise/metadata.rb:1
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:15
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:27
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:36
FC120: Do not set the name property directly on a resource: mariadb-enterprise/libraries/provider_mysql_service_smf.rb:29
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.0.9 passed this metric
Testing File Metric
0.0.9 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
0.0.9 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
0.0.9 failed this metric
0.0.9 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
0.0.9 failed this metric
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:19
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:21
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:23
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:7
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:8
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:9
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:10
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:11
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:12
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:13
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:14
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:15
FC064: Ensure issues_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC065: Ensure source_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mariadb-enterprise/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mariadb-enterprise/metadata.rb:1
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:15
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:27
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:36
FC120: Do not set the name property directly on a resource: mariadb-enterprise/libraries/provider_mysql_service_smf.rb:29
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.0.9 passed this metric
Testing File Metric
0.0.9 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
0.0.9 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
0.0.9 failed this metric
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:21
FC007: Ensure recipe dependencies are reflected in cookbook metadata: mariadb-enterprise/libraries/helpers.rb:23
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:7
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:8
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:9
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:10
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:11
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:12
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:13
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:14
FC029: No leading cookbook name in recipe metadata: mariadb-enterprise/metadata.rb:15
FC064: Ensure issues_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC065: Ensure source_url is set in metadata: mariadb-enterprise/metadata.rb:1
FC066: Ensure chef_version is set in metadata: mariadb-enterprise/metadata.rb:1
FC069: Ensure standardized license defined in metadata: mariadb-enterprise/metadata.rb:1
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:15
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:27
FC109: Use platform-specific package resources instead of provider property: mariadb-enterprise/recipes/repos.rb:36
FC120: Do not set the name property directly on a resource: mariadb-enterprise/libraries/provider_mysql_service_smf.rb:29
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
0.0.9 passed this metric
Testing File Metric
0.0.9 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
0.0.9 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
0.0.9 failed this metric
0.0.9 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