Skip to content

Add example of MariaDB server installation on Ubuntu #857

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 28, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* [Work with an existing server](#work-with-an-existing-server)
* [Specify passwords](#specify-passwords)
* [Install Percona server on CentOS](#install-percona-server-on-centos)
* [Install MariaDB on Ubuntu](#install-mariadb-on-ubuntu)
4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
5. [Limitations - OS compatibility, etc.](#limitations)
6. [Development - Guide for contributing to the module](#development)
Expand Down Expand Up @@ -240,6 +241,110 @@ Yumrepo['percona']->
Class['mysql::bindings']
```

### Install MariaDB on Ubuntu

#### Preliminary step: Install the MariaDB official repo (optionnal)

In this example, we want the latest stable (currently 10.1) from the official
MariaDB repository, not the one from the distro repository.
Note that this part is totally optionnal. You can also use the package from the
Ubuntu repository.

**Note:** `sfo1.mirrors.digitalocean.com` is just one of the many mirrors
available. You can use any other official mirror for better performance.

**Important:** this example is using a MariaDB 10.1 repository. Make sure you
are using the repository corresponding to the version you want.

```
include apt

apt::source { 'mariadb':
location => 'http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu',
release => $::lsbdistcodename,
repos => 'main',
key => {
id => '199369E5404BD5FC7D2FE43BCBCB082A1BB943DB',
server => 'hkp://keyserver.ubuntu.com:80',
},
include => {
src => false,
deb => true,
},
}
```

#### Installing the MariaDB server

This part of the example shows how to install a MariaDB server on Ubuntu (trusty
here). You will probably want to tweak the version and the parameters of the
my.cnf.

As a reminder, all the parameters of the my.cnf can be defined using the
`override_options` parmeter.

Of course, you need to make sure that all the custom folders you are setting
your files into do exist as prerequisites of this code! :)
Note that `/var/log/mysql` and `/var/run/mysqld` are created automatically.

All the values set here are an example of a working minimal configuration.
You can tweak them all! ;)

**Note:** it is not mandatory to specify the version of the package you want
(using the `package_ensure` parameter) but it's always a good practice to do
so as it avoids some surprises...

```
class {'::mysql::server':
package_name => 'mariadb-server',
package_ensure => '10.1.14+maria-1~trusty',
service_name => 'mysql',
root_password => 'AVeryStrongPasswordUShouldEncrypt!',
override_options => {
mysqld => {
'log-error' => '/var/log/mysql/mariadb.log',
'pid-file' => '/var/run/mysqld/mysqld.pid',
},
mysqld_safe => {
'log-error' => '/var/log/mysql/mariadb.log',
},
}
}

# Dependency management. Only use that part if you are installing the repository
# as shown in the Preliminary step of this example.
Apt::Source['mariadb'] ~>
Class['apt::update'] ->
Class['::mysql::server']

```

#### Installing the MariaDB client (can be done separately)

This part of the example shows how to install the MariaDB client and
use the `bindings_enable` to get all the bindings installed in 1 shot.

This part can be used totally individually from the server installation part.

**Note:** it is not mandatory to specify the version of the package you want
(using the `package_ensure` parameter) but it's always a good practice to do
so as it avoids some surprises...

```
class {'::mysql::client':
package_name => 'mariadb-client',
package_ensure => '10.1.14+maria-1~trusty',
bindings_enable => true,
}

# Dependency management. Only use that part if you are installing the repository
# as shown in the Preliminary step of this example.
Apt::Source['mariadb'] ~>
Class['apt::update'] ->
Class['::mysql::client']
```


## Reference

### Classes
Expand Down