Browse Source

Merge pull request #857 from aerostitch/add_mariadb_ex_doc

Add example of MariaDB server installation on Ubuntu
Bryan Jen 8 years ago
parent
commit
caec312e42
1 changed files with 105 additions and 0 deletions
  1. 105 0
      README.md

+ 105 - 0
README.md

@@ -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)
@@ -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