cookbook 'mariadb', '= 1.1.0'
mariadb
(81) Versions
1.1.0
-
-
5.5.5
-
5.5.4
-
5.5.3
-
5.5.2
-
5.5.1
-
5.5.0
-
5.4.0
-
5.3.2
-
5.3.1
-
5.3.0
-
5.2.19
-
5.2.18
-
5.2.17
-
5.2.16
-
5.2.15
-
5.2.14
-
5.2.13
-
5.2.12
-
5.2.11
-
5.2.10
-
5.2.9
-
5.2.8
-
5.2.7
-
5.2.6
-
5.2.5
-
5.2.4
-
5.2.3
-
5.2.2
-
5.2.1
-
5.2.0
-
5.1.0
-
5.0.2
-
5.0.1
-
5.0.0
-
4.3.0
-
4.2.1
-
4.2.0
-
4.1.4
-
4.1.3
-
4.1.2
-
4.1.1
-
4.1.0
-
4.0.1
-
4.0.0
-
3.2.0
-
3.1.0
-
3.0.0
-
2.1.0
-
2.0.0
-
1.5.4
-
1.5.3
-
1.5.2
-
1.5.1
-
1.5.0
-
1.4.0
-
1.3.0
-
1.2.0
-
1.1.0
-
1.0.1
-
0.3.4
-
0.3.3
-
0.3.2
-
0.3.1
-
0.3.0
-
0.2.13
-
0.2.12
-
0.2.11
-
0.2.10
-
0.2.9
-
0.2.8
-
0.2.7
-
0.2.6
-
0.2.5
-
0.2.4
-
0.2.3
-
0.2.2
-
0.2.1
-
0.2.0
-
0.1.8
-
0.1.7
-
0.1.6
Follow51
- 5.5.5
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.19
- 5.2.18
- 5.2.17
- 5.2.16
- 5.2.15
- 5.2.14
- 5.2.13
- 5.2.12
- 5.2.11
- 5.2.10
- 5.2.9
- 5.2.8
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.1
- 4.0.0
- 3.2.0
- 3.1.0
- 3.0.0
- 2.1.0
- 2.0.0
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.1
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.8
- 0.1.7
- 0.1.6
Installs/Configures MariaDB
cookbook 'mariadb', '= 1.1.0', :supermarket
knife supermarket install mariadb
knife supermarket download mariadb
MariaDB Cookbook
Description
This cookbook contains all the stuffs to install and configure a mariadb server on a dpkg/apt compliant system (typically debian), or a rpm/yum compliant system (typically centos)
Requirements
repository
-
mariadb
- This cookbook need that you have a valid apt repository installed with the mariadb official packages
packages
-
percona-xtrabackup
- if you want to use the xtrabckup SST Auth for galera cluster. -
socat
- if you want to use the xtrabckup SST Auth for galera cluster. -
rsync
- if you want to use the rsync SST Auth for galera cluster. -
debconf-utils
- if you use debian platform family.
operating system
-
debian
- this cookbook is fully tested on debian -
ubuntu
- this cookbook is fully tested on ubuntu -
centos
- this cookbook is fully tested on centos
Attributes
mariadb::default
<table>
<tr>
<th>Key</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
<tr>
<td><tt>['mariadb']['install']['version']</tt></td>
<td>String</td>
<td>Version to install (currently 10.0 et 5.5)</td>
<td><tt>10.0</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['use_default_repository']</tt></td>
<td>Boolean</td>
<td>Whether to install MariaDB default repository or not. If you don't have a local repo containing packages, put it to true</td>
<td><tt>false</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['server_root_password']</tt></td>
<td>String</td>
<td>local root password</td>
<td><tt></tt></td>
</tr>
<tr>
<td><tt>['mariadb']['forbid_remote_root']</tt></td>
<td>Boolean</td>
<td>Whether to activate root remote access</td>
<td><tt>true</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['allow_root_pass_change']</tt></td>
<td>Boolean</td>
<td>Whether to allow the recipe to change root password after the first install</td>
<td><tt>false</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['client']['development_files']</tt></td>
<td>Boolean</td>
<td>Whether to install development files in client recipe</td>
<td><tt>true</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['apt_repository']['base_url']</tt></td>
<td>String</td>
<td>The http base url to use when installing from default repository</td>
<td><tt>'ftp.igh.cnrs.fr/pub/mariadb/repo'</tt></td>
</tr>
<tr>
<td><tt>['mariadb']['install']['prefer_os_package']</tt></td>
<td>Boolean</td>
<td>Indicator for preferring use packages shipped by running os</td>
<td><tt>false</tt></td>
</tr>
</table>
Usage
To install a default server for mariadb choose the version you want (MariaDB 5.5 or 10, galera or not), then call the recipe accordingly.
List of availables recipes:
- mariadb::default (just call server recipe with default options)
- mariadb::server
- mariadb::galera
- mariadb::client
Please be ware that by default, the root password is empty! If you want have changed it use the node['mariadb']['server_root_password']
attribute to put a correct value. And by default the remote root access is not activated. Use node['mariadb']['forbid_remote_root']
attribute to change it.
Sometimes, the default apt repository used for apt does not work (see issue #6). In this case, you need to choose another mirror which worki (pick it from mariadb website), and put the http base url in the attribute node['mariadb']['apt_repository']['base_url']
.
mariadb::galera
When installing the mariadb::galera on debian recipe, You have to take care of one specific attribute:
node['mariadb']['debian']['password']
which default to 'please-change-me'
As wee need to have the same password for this user on the whole cluster nodes... We will change the default install one by the content of this attribute.
mariadb::client
By default this recipe install the client, and all needed packages to develop client application. If you do not want to install development files when installing client package,
set the attribute node['mariadb']['client']['development_files']
to false.
Providers
This recipe define 2 providers:
- Chef::Provider::Mariadb::Configuration
shortcut resource mariadb_configuration
- Chef::Provider::Mariadb::Replication
shortcut resource mariadb_replication
mariadb_configuration
Mainly use for internal purpose. You can use it to create a new configuration file into configuration dir. You have to define 2 variables section
and option
.
Where section
is the configuration section, and option
is a hash of key/value. The name of the resource is used as base for the filename.
Example:
ruby
mariadb_configuration 'fake' do
section 'mysqld'
option :innodb_buffer_pool_size => node['mysql']['innodb_buffer_pool_size'],
:innodb_flush_method => node['mysql']['innodb_flush_method']
end
will become the file fake.cnf in the include dir (depend on your platform), which contain:
[mysqld]
foo=bar
If the value start with a '#', then it's considered as a comment, and the value is printed as is (without the key)
Example:
ruby
mariadb_configuration 'fake' do
section 'mysqld'
option :comment1 => '# Here i am',
:foo => bar
end
will become the file fake.cnf in the include dir (depend on your platform), which contain:
```
[mysqld]
Here i am
foo=bar
```
mariadb_replication
This LWRP is used to manage replication setup on a host. To use this LWRP, the node need to have the mysql binary installed (via the mariadb::client or mariadb::server or mariadb::galera recipe).
It have 4 actions:
- add - to add a new replication setup (become a slave)
- stop - to stop the slave replication
- start - to start the slave replication
- remove - to remove the slave replication configuration
The resource name need to be 'default' if your don't want to use a named connection (multi source replication in MariaDB 10).
So by default the provider try to use the local instance of mysql, with the current user and no password. If you want to change, you have to define host
, port
, user
or password
mariadb_replication 'default' do user 'root' password 'fakepass' host 'fakehost' action :stop end
will stop the replication on the host fakehost
using the user root
and password fakepass
to connect to.
When you add a replication configuration, you have to define at least 4 values master_host
, master_user
, master_password
and master_use_gtid
. And if you don't want the GTID support, you have to define also master_log_file
and master_log_pos
Example:
ruby
mariadb_replication 'usefull_conn_name' do
master_host 'server1'
master_user 'slave_user'
master_password 'slave_password'
master_use_gtid 'current_pos'
action :add
end
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:
Nicolas Blanc sinfomicien@gmail.com
mariadb CHANGELOG
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.1.0 (2017-03-12)
Fixed
- Correctly set server-id and fixed replication provider
nil
string bug (#118) - Make open-files-limit configurable (previously commented out in template) (#118)
- Fix package name for RedHat family distros using MariaDB 10.1 (#138)
Added
- Add ability to specify your own
gcomm://
address for Galera replication (#139) - Add attribute containing
my.cnf
sections to configure to allow users to override what cookbook manages - Add attributes to configure general and slow log options (#137)
- Add Docker CI tests (add new APT key to fix #107, add Supermarket version badge and change Travis badge to show master build status to README)
- Add Docker tests to Travis for smoke tests
Changed
- Change CHANGELOG format to follow Keep a Changelog (v0.3.0)
- Change
Chef search results
message log level todebug
to remove unnecessary output (#90) - Update Vagrant box names to match latest OS versions for testing with VirtualBox
Removed
- Remove Fedora platfrom from Test-Kitchen, not something we'll test on going forward
- Remove Ubuntu 12.04 LTS from Test-Kitchen, not something we'll test on going forward as it reaches EOL in one month
1.0.1
Fixed
- Correct ServerSpec tests
- Correct some Units tests (Use ServerRunner instead of SoloRunner to test search)
Added
- Add an option to not install extra packages
- Update OS version to check with Kitchen
1.0.0
Fixed
- Fix fetching apt key on every run bug (#91)
- Fix Foodcritic and RuboCop offences
- Fix ChefSpec tests (and adding more coverage)
- Fix some typos
- Fix CI
- Fix non-interpolated array
- Fix only_if
- Fix unary operator; ensure script exits on any error
- Prevent cookbook from crashing Chef < 12
Added
- Add support for configuring skip-name-resolve
- Add missing code to my.cnf template to deploy mysqld_safe options
- Add the ability to config skip-log-bin to be present
- Add MariaDB 10.1 and data bag support
- Add exception handling, when searching for data bag
- Add some mandatory attributes and minor fixes
- Add test for bin_log unset
- Add sensitive tag to execute statement
- Add support to disable binlog (by setting
log_bin
tofalse
)
Changed
- Apply a more standard .gitignore
- Update chef components to more recent versions
- Update documentation for 'options' hash
- Use Berkshelf 4.x and RVM 2.1.7
Removed
- Remove anonymous users and test database by default
0.3.3
Added
- Add the ability to configure
skip-log-bin
to be present (#110)
0.3.2
Fixed
- Add missing code to
my.cnf
template to deploymysqld_safe
options (#125)
Added
- Add support for configuring skip-name-resolve (#126)
0.3.1
Fixed
- Add user and password to correct debian-grants (#57)
- Correct service name inconsistency on CentOS 7 (#68)
- Fix directory permissions regression (#73)
-
mariadb_configuration
template uses current cookbook as template source (#66) - Service is restarted every run if not localhost (#76)
Added
- Add Scientific Linux support (#69)
- Add a vagrant config to test a Galera cluster (#64)
- Add xtrabackup-v2 support for SST Method (#71)
- Allow Galera cluster nodes to be configured when using Chef Solo (#62)
0.3.0
Added
- Add support for using operating system shipped mariadb packages
0.2.12
Fixed
- Push gpg key adds through http/0 - Helps with firewalled installs (#39)
- Load the needed plugins at startup (#48)
Added
0.2.11
Fixed
- Fix TypeError in the replication provider (#43)
Added
0.2.10
Fixed
- Audit Plugin test and installation - Correct bad notifies and stdout test
0.2.9
Fixed
- Audit plugin installation can crash mariadb server (#36)
0.2.8
Fixed
- Add a switch to not launch audit plugin install, when already installed (#29)
- Remove the
only_if
to mysql service (#28) - When using Galera, nodes were not sorted, applying configuration change too often (#30)
Added
- Add more ChefSpec coverage (#31)
- Add a switch to separate server install and audit install when needed
- Add a RuboCop rule to allow line length to be 120 characters long
0.2.7
Fixed
- Fix convert TypeError in the replication provider (#24)
- Data is now moved when
['mariadb']['mysqld']['datadir']
is changed (#25)
Added
- Add
audit_plugin
management (#31)
0.2.6
Fixed
- Fix provider
mariadb_replication
compilation error (#18)
Added
- Complete CHANGELOG and correct README
0.2.5
Fixed
- Fix the debian-sys-maint user creation/password change (#12)
- Fix the Galera root password preseed (#11)
Added
- Add a LWRP to manage replication slave (#16)
- Add attribute to set custom
apt_repository
's'base_url
(#6) - Add new tests for the new features (Galera, development files install, replication LWRP)
- Add option to skip installing development files within client recipe (#17)
- Add CHANGELOG and add new feature explanations to README
0.2.4
Fixed
- Fix FC004 broken rule (#10)
- Fix Foodcritic tests (add --epic-fail any to be sure it fails when a broken rule is detected) (#9)
0.2.3
Fixed
- Fix management of the mysql root password (#4)
Added
- Add a lot of ChefSpec and kitchen/ServerSpec tests
- Add ability to add or remove root remote access via attribute (#7)
- Add immediate restart of the
mysql
service when port is changed (#5) - Add more documentation
0.2.2
Fixed
- Fix and add multiple tests
- Fix client install to add dev files
- Fix repository install under Debian family
0.2.1
Added
- Add stove to package/publish cookbook (remove PaxHeaders)
0.2.0
Fixed
- Correct the Documentation
Added
- Add a recipe to manage client only installation
- Add RPM/Yum management
Changed
- Refactor all tests to manage new platform (CentOS/RedHat/Fedora)
- Refactor the whole recipes list and management to ease it
- Rename the provider (from
extraconf
toconfiguration
) and add matchers for it
0.1.8
Added
- Add ignore-failure to debian-grants correct as it can break on initial setup
0.1.7
Fixed
- Correct a typo (unnecessary call to
run_command
)
0.1.6
Added
- Add new rspec tests
- Create Kitchen test suite
- Improve Galera configuration management
0.1.5
Added
- Improve attributes management
0.1.4
Added
- Adapt
galera55
recipe to use a generic galera recipe - Improve documentation
- Use a generic Galera recipe to create the galera10 recipe
0.1.0
- Initial release of mariadb
Collaborator Number Metric
1.1.0 passed this metric
Foodcritic Metric
1.1.0 passed this metric
License Metric
1.1.0 passed this metric
1.1.0 passed this metric
1.1.0 passed this metric
License Metric
1.1.0 passed this metric
1.1.0 passed this metric