Coder Social home page Coder Social logo

ansible-role-mariadb's Introduction

Ansible role mariadb

Build Status

An Ansible role for managing MariaDB in RedHat-based distributions. Specifically, the responsibilities of this role are to:

  • Install MariaDB packages from the official MariaDB repositories
  • Remove unsafe defaults:
    • set database root password (remark that once set, this role is unable to change the database root password)
    • remove anonymous users
    • remove test database
  • Create users and databases
  • Manage configuration files network.cnf, and server.cnf

This role only supports InnoDB as storage engine.

If you like/use this role, please consider giving it a star! Thank you!

Requirements

No specific requirements

Role Variables

None of the variables below are required. When not defined by the user, the default values are used.

Basic configuration

Variable Default Comments
mariadb_bind_address '127.0.0.1' Set this to the IP address of the network interface to listen on, or '0.0.0.0' to listen on all interfaces.
mariadb_databases [] List of dicts specifyint the databases to be added. See below for details.
mariadb_init_scripts [] List of dicts specifying any scripts to initialise the databases. Se below for details. ta
mariadb_port 3306 The port number used to listen to client requests
mariadb_root_password '' The MariaDB root password. It is highly recommended to change this!
mariadb_swappiness 0 "Swappiness" value. System default is 60. A value of 0 means that swapping out processes is avoided.
mariadb_users [] List of dicts specifying the users to be added. See below for details.
mariadb_version '10.2' The version of MariaDB to be installed. Default is the current stable release.

Server configuration

The variables below are set in /etc/my.cnf.d/server.cnf, specifically in the [mariadb] section. For more info on the values, read the MariaDB Server System Variables documentation.

Variable Default Comments
mariadb_innodb_buffer_pool_instances 8
mariadb_innodb_buffer_pool_size 384M
mariadb_innodb_file_format Barracuda
mariadb_innodb_file_format_check 1
mariadb_innodb_file_per_table ON
mariadb_innodb_flush_log_at_trx_commit 1
mariadb_innodb_log_buffer_size 16M
mariadb_innodb_log_file_size 48M
mariadb_innodb_strict_mode ON
mariadb_join_buffer_size 128K
mariadb_log_warnings 1 Log critical warnings. Set to 0 to turn off, or greater than 1 for more verbose logging.
mariadb_long_query_time 10
mariadb_max_allowed_packet 16M
mariadb_max_connections 505
mariadb_max_heap_table_size 16M
mariadb_max_user_connections 500
mariadb_port 3306
mariadb_query_cache_size 0 The query cache is disabled by default. Set to a nonzero value to enable the query cache.
mariadb_read_buffer_size 128K
mariadb_read_rnd_buffer_size 256k
mariadb_skip_name_resolve 1 Use IP addresses only. Set to 0 to resolve host names.
mariadb_slow_query_log 0 Set to 1 to enable the slow query log.
mariadb_sort_buffer_size 2M
mariadb_table_definition_cache 1400
mariadb_table_open_cache 2000
mariadb_table_open_cache_instances 8
mariadb_tmp_table_size 16M

Adding databases

Databases are defined with a dict containing the fields name: (required), and init_script: (optional). The init script is a SQL file that is executed when the database is created to initialise tables and populate it with values.

mariadb_databases:
  - name: appdb1
  - name: appdb2
    init_script: files/init_appdb2.sql

Adding users

Users are defined with a dict containing fields name:, password:, priv:, and, optionally, host:. The password is in plain text and priv: specifies the privileges for this user as described in the Ansible documentation. An example:

mariadb_users:
  - name: john
    password: letmein
    priv: '*.*:ALL,GRANT'
  - name: jack
    password: sekrit
    priv: 'jacksdb.*:ALL'
    host: '192.168.56.%'

Dependencies

No dependencies.

Example Playbook

See the test playbook

Testing

Test code is stored in separate branches. See the appropriate README:

License

2 clause BSD

Contributors

Issues, feature requests, ideas, suggestions, etc. are appreciated and can be posted in the Issues section.

Pull requests are also very welcome. Please create a topic branch for your proposed changes. If you don’t, this will create conflicts in your fork when you synchronise changes after the merge. Don’t hesitate to add yourself to the contributor list below in your PR!

ansible-role-mariadb's People

Contributors

bertvv avatar louiznk avatar piuma avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.