cookbook 'mariadb-enterprise', '= 0.0.3'
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.3 Follow4
MariaDB Enterprise Chef Cookbook
cookbook 'mariadb-enterprise', '= 0.0.3', :supermarket
knife supermarket install mariadb-enterprise
knife supermarket download mariadb-enterprise
mariadb-enterprise Cookbook
The mariadb-enterprise Cookbook is a library cookbook that provides resource primitives
(LWRPs) for use in recipes and a few ready to use recipes: installation/deinstallation and start particular version of MariaDB.
Scope
This cookbook is concerned with the "MariaDB Enterprise Server".
Requirements
- Chef 11 or higher
- Ruby 1.9 or higher (preferably from the Chef full-stack installer)
- Network accessible package repositories
Platform Support
The following platforms have been tested:
|----------------+-----+------|
| | 5.5 | 10.0 |
|----------------+-----+------|
| debian-6 | X | X |
|----------------+-----+------|
| debian-7 | X | X |
|----------------+-----+------|
| ubuntu-10.04 | X | X |
|----------------+-----+------|
| ubuntu-12.04 | X | X |
|----------------+-----+------|
| ubuntu-14.04 | X | X |
|----------------+-----+------|
| ubuntu-14.10 | X | X |
|----------------+-----+------|
| centos-5 | X | X |
|----------------+-----+------|
| centos-6 | X | X |
|----------------+-----+------|
| centos-7 | X | X |
|----------------+-----+------|
| suse-13 | X | X |
|----------------+-----+------|
| sles-11 | X | X |
|----------------+-----+------|
| sles-12 | X | X |
|----------------+-----+------|
| rhel-5 | X | X |
|----------------+-----+------|
| rhel-6 | X | X |
|----------------+-----+------|
| rhel-7 | X | X |
|----------------+-----+------|
| Windows | partially |
|----------------+-----+------|
Cookbook Dependencies
Usage
For MariaDB Enterprise default version installation type in command line:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::install]
In a vagrant file (For 10.0.17 MDBE version):
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.17, token = 'MY SECRET TOKEN' } } chef.add_recipe "mariadb-enterprise::install" end
You can get authentication token on http://mariadb.com.
Or you can use MariaDB-enterprise cookbook into your own cookbook. Place a dependency on the MariaDB-enterprise cookbook in your cookbook's metadata.rb
depends 'mariadb-enterprise', '~> 0'
Then, in 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
.
The configuration file is at /etc/mysql-foo/my.cnf
. It contains the
minimum options to get the service running. It looks like this.
# Chef generated my.cnf for instance mysql-default
[client]
default-character-set = utf8
port = 3306
socket = /var/run/mysql-foo/mysqld.sock
[mysql]
default-character-set = utf8
[mysqld]
user = mysql
pid-file = /var/run/mysql-foo/mysqld.pid
socket = /var/run/mysql-foo/mysqld.sock
port = 3306
datadir = /var/lib/mysql-foo
tmpdir = /tmp
log-error = /var/log/mysql-foo/error.log
!includedir /etc/mysql-foo/conf.d
[mysqld_safe]
socket = /var/run/mysql-foo/mysqld.sock
You can put extra configuration into the conf.d directory 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
You are responsible for providing my_extra_settings.erb
in your own
cookbook's templates folder.
Resources Overview
Recipes
install
Installs particular version (10.0 by default) MariaDB Enterprise server.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::install]
Parameters are:
-
mariadb-enterprise::token
- your seckret token -
mariadb-enterprise::version
- version of Maria DB
uninstall
Removes both MariaDB Enterprise server & client.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::uninstall]
purge
Removes both MariaDB Enterprise server & client and REMOVE ALL DATA and configurations, turns off repositories.
Usage:
$ chef-solo -c solo.rb -o recipe[mariadb-enterprise::purge]
start
Creates (doesn't install MariaDB!) and starts MariaDB Enterprise server daemon with particular params. For example:
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 passwordmariadb::bind_address
- bind addressmariadb::port
- portmariadb::socket
- socket filemariadb::data_dir
- data directory, /var/lib/mysql-<instance name> by default
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
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.
Foodcritic Metric
0.0.3 failed this metric
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:4
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:15
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:3
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:35
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos_off.rb:5
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/uninstall.rb:3
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:37
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:43
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:44
FC005: Avoid repetition of resource declarations: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/provider_mysql_service.rb:79
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:19
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:21
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:23
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:4
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:15
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:3
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:35
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos_off.rb:5
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/uninstall.rb:3
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:7
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:8
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:9
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:10
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:11
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:5
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:17
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:26
0.0.3 failed this metric
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:15
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:3
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:35
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos_off.rb:5
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/uninstall.rb:3
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:37
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:43
FC002: Avoid string interpolation where not required: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:44
FC005: Avoid repetition of resource declarations: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/provider_mysql_service.rb:79
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:19
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:21
FC007: Ensure recipe dependencies are reflected in cookbook metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/libraries/helpers.rb:23
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:4
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/install.rb:15
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:3
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:35
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos_off.rb:5
FC019: Access node attributes in a consistent manner: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/uninstall.rb:3
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:7
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:8
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:9
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:10
FC029: No leading cookbook name in recipe metadata: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/metadata.rb:11
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:5
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:17
FC041: Execute resource used to run curl or wget commands: /tmp/cook/8fee81622e0ec410419b62c0/mariadb-enterprise/recipes/repos.rb:26