Skip to content

Commit

Permalink
feat: integrate galera cluster creation
Browse files Browse the repository at this point in the history
  • Loading branch information
tboerger committed Sep 26, 2021
1 parent 0a90a26 commit fa5e075
Show file tree
Hide file tree
Showing 8 changed files with 478 additions and 3 deletions.
231 changes: 231 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,39 @@ Building and improving this Ansible role have been sponsored by my employer **Pr
* [mariadb_extra_configs](#mariadb_extra_configs)
* [mariadb_extra_databases](#mariadb_extra_databases)
* [mariadb_extra_users](#mariadb_extra_users)
* [mariadb_galera_address](#mariadb_galera_address)
* [mariadb_galera_cluster](#mariadb_galera_cluster)
* [mariadb_galera_enabled](#mariadb_galera_enabled)
* [mariadb_galera_name](#mariadb_galera_name)
* [mariadb_galera_nodes](#mariadb_galera_nodes)
* [mariadb_galera_primary](#mariadb_galera_primary)
* [mariadb_global_databases](#mariadb_global_databases)
* [mariadb_global_users](#mariadb_global_users)
* [mariadb_ignore_db_dirs](#mariadb_ignore_db_dirs)
* [mariadb_innodb_buffer_pool_instances](#mariadb_innodb_buffer_pool_instances)
* [mariadb_innodb_buffer_pool_size](#mariadb_innodb_buffer_pool_size)
* [mariadb_innodb_file_per_table](#mariadb_innodb_file_per_table)
* [mariadb_innodb_flush_log_at_trx_commit](#mariadb_innodb_flush_log_at_trx_commit)
* [mariadb_innodb_io_capacity](#mariadb_innodb_io_capacity)
* [mariadb_innodb_max_dirty_pages_pct](#mariadb_innodb_max_dirty_pages_pct)
* [mariadb_key_buffer_size](#mariadb_key_buffer_size)
* [mariadb_limit_number_files](#mariadb_limit_number_files)
* [mariadb_lower_case_table_names](#mariadb_lower_case_table_names)
* [mariadb_max_allowed_packet](#mariadb_max_allowed_packet)
* [mariadb_max_connections](#mariadb_max_connections)
* [mariadb_oom_score_adjust](#mariadb_oom_score_adjust)
* [mariadb_packages](#mariadb_packages)
* [mariadb_query_cache_size](#mariadb_query_cache_size)
* [mariadb_query_cache_type](#mariadb_query_cache_type)
* [mariadb_root_hosts](#mariadb_root_hosts)
* [mariadb_root_password](#mariadb_root_password)
* [mariadb_root_username](#mariadb_root_username)
* [mariadb_skip_name_resolve](#mariadb_skip_name_resolve)
* [mariadb_symbolic_links](#mariadb_symbolic_links)
* [mariadb_temp_directory](#mariadb_temp_directory)
* [mariadb_timeout_start_sec](#mariadb_timeout_start_sec)
* [mariadb_upstream_repo](#mariadb_upstream_repo)
* [mariadb_upstream_version](#mariadb_upstream_version)
* [Dependencies](#dependencies)
* [License](#license)
* [Author](#author)
Expand Down Expand Up @@ -249,6 +270,64 @@ mariadb_extra_users:
state: absent
```

### mariadb_galera_address

Node address within galera cluster

#### Default value

```YAML
mariadb_galera_address: '{{ ansible_address }}'
```

### mariadb_galera_cluster

#### Default value

```YAML
mariadb_galera_cluster: galera
```

### mariadb_galera_enabled

Enable galera clustering

#### Default value

```YAML
mariadb_galera_enabled: false
```

### mariadb_galera_name

Node name within galera cluster

#### Default value

```YAML
mariadb_galera_name: '{{ inventory_hostname }}'
```

### mariadb_galera_nodes

Node addresses part of galera cluster

#### Default value

```YAML
mariadb_galera_nodes: []
```

### mariadb_galera_primary

Inventory of primary galera node

#### Default value

```YAML
mariadb_galera_primary:
```

### mariadb_global_databases

List of databases to create
Expand Down Expand Up @@ -304,6 +383,76 @@ List of ignored database directories
mariadb_ignore_db_dirs: []
```

### mariadb_innodb_buffer_pool_instances

InnoDB buffer pool instances

#### Default value

```YAML
mariadb_innodb_buffer_pool_instances: 1
```

### mariadb_innodb_buffer_pool_size

InnoDB buffer pool size

#### Default value

```YAML
mariadb_innodb_buffer_pool_size: 256M
```

### mariadb_innodb_file_per_table

InnoDB file per table

#### Default value

```YAML
mariadb_innodb_file_per_table: 1
```

### mariadb_innodb_flush_log_at_trx_commit

InnoDB flush at trx commit

#### Default value

```YAML
mariadb_innodb_flush_log_at_trx_commit: 1
```

### mariadb_innodb_io_capacity

InnoDB IO capacity

#### Default value

```YAML
mariadb_innodb_io_capacity: 1000
```

### mariadb_innodb_max_dirty_pages_pct

InnoDB max dirty pages percentage

#### Default value

```YAML
mariadb_innodb_max_dirty_pages_pct: 90
```

### mariadb_key_buffer_size

Key buffer size

#### Default value

```YAML
mariadb_key_buffer_size: 32M
```

### mariadb_limit_number_files

Number of allowed open files for systemd service
Expand Down Expand Up @@ -344,6 +493,16 @@ Max allowed connections
mariadb_max_connections: 1000
```

### mariadb_oom_score_adjust

Adjustment score for OOM killer

#### Default value

```YAML
mariadb_oom_score_adjust: -999
```

### mariadb_packages

List of packages to install
Expand All @@ -357,6 +516,27 @@ mariadb_packages:
- mariadb-backup
- mycli
- python3-pymysql
- rsync
```

### mariadb_query_cache_size

Query cache size

#### Default value

```YAML
mariadb_query_cache_size: 0
```

### mariadb_query_cache_type

Query cache type

#### Default value

```YAML
mariadb_query_cache_type: 0
```

### mariadb_root_hosts
Expand All @@ -368,6 +548,7 @@ Allowed hosts for root user
```YAML
mariadb_root_hosts:
- localhost
- 127.0.0.1
```

### mariadb_root_password
Expand All @@ -390,6 +571,26 @@ Username for the root user
mariadb_root_username: root
```

### mariadb_skip_name_resolve

Skip name resolving

#### Default value

```YAML
mariadb_skip_name_resolve: true
```

### mariadb_symbolic_links

Symbolic links

#### Default value

```YAML
mariadb_symbolic_links: 0
```

### mariadb_temp_directory

Temporary directory used by MariaDB
Expand All @@ -400,6 +601,36 @@ Temporary directory used by MariaDB
mariadb_temp_directory:
```

### mariadb_timeout_start_sec

Time to wait for daemon startup

#### Default value

```YAML
mariadb_timeout_start_sec: 120
```

### mariadb_upstream_repo

Install from upstream repository

#### Default value

```YAML
mariadb_upstream_repo: true
```

### mariadb_upstream_version

Upstream repo version

#### Default value

```YAML
mariadb_upstream_version: 10.6
```

## Dependencies

* [rolehippie.docker](https://github.com/rolehippie/docker)
Expand Down
65 changes: 65 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
# Standards: 1.2
---
# @var mariadb_upstream_repo:description: Install from upstream repository
mariadb_upstream_repo: True

# @var mariadb_upstream_version:description: Upstream repo version
mariadb_upstream_version: 10.6

# @var mariadb_packages:description: List of packages to install
mariadb_packages:
- mariadb-server
- mariadb-client
- mariadb-backup
- mycli
- python3-pymysql
- rsync

# @var mariadb_bind_address:description: Bind address for the server
mariadb_bind_address: 0.0.0.0
Expand All @@ -17,6 +24,39 @@ mariadb_ignore_db_dirs: []
# @var mariadb_temp_directory:description: Temporary directory used by MariaDB
mariadb_temp_directory:

# @var mariadb_skip_name_resolve:description: Skip name resolving
mariadb_skip_name_resolve: True

# @var mariadb_innodb_buffer_pool_size:description: InnoDB buffer pool size
mariadb_innodb_buffer_pool_size: 256M

# @var mariadb_innodb_buffer_pool_instances:description: InnoDB buffer pool instances
mariadb_innodb_buffer_pool_instances: 1

# @var mariadb_innodb_file_per_table:description: InnoDB file per table
mariadb_innodb_file_per_table: 1

# @var mariadb_innodb_flush_log_at_trx_commit:description: InnoDB flush at trx commit
mariadb_innodb_flush_log_at_trx_commit: 1

# @var mariadb_innodb_max_dirty_pages_pct:description: InnoDB max dirty pages percentage
mariadb_innodb_max_dirty_pages_pct: 90

# @var mariadb_innodb_io_capacity:description: InnoDB IO capacity
mariadb_innodb_io_capacity: 1000

# @var mariadb_key_buffer_size:description: Key buffer size
mariadb_key_buffer_size: 32M

# @var mariadb_query_cache_type:description: Query cache type
mariadb_query_cache_type: 0

# @var mariadb_query_cache_size:description: Query cache size
mariadb_query_cache_size: 0

# @var mariadb_symbolic_links:description: Symbolic links
mariadb_symbolic_links: 0

# @var mariadb_max_allowed_packet:description: Max allowed packet
mariadb_max_allowed_packet: 64M

Expand All @@ -29,6 +69,30 @@ mariadb_lower_case_table_names: 0
# @var mariadb_limit_number_files:description: Number of allowed open files for systemd service
mariadb_limit_number_files: 32768

# @var mariadb_oom_score_adjust:description: Adjustment score for OOM killer
mariadb_oom_score_adjust: -999

# @var mariadb_timeout_start_sec:description: Time to wait for daemon startup
mariadb_timeout_start_sec: 120

# @var mariadb_galera_enabled:description: Enable galera clustering
mariadb_galera_enabled: False

# @var mariadb_galera_primary:description: Inventory of primary galera node
mariadb_galera_primary:

# @var mariadb_galera_name:description: Name of the galera cluster
mariadb_galera_cluster: galera

# @var mariadb_galera_nodes:description: Node addresses part of galera cluster
mariadb_galera_nodes: []

# @var mariadb_galera_address:description: Node address within galera cluster
mariadb_galera_address: "{{ ansible_address }}"

# @var mariadb_galera_name:description: Node name within galera cluster
mariadb_galera_name: "{{ inventory_hostname }}"

# @var mariadb_root_username:description: Username for the root user
mariadb_root_username: root

Expand All @@ -38,6 +102,7 @@ mariadb_root_password: root
# @var mariadb_root_hosts:description: Allowed hosts for root user
mariadb_root_hosts:
- localhost
- 127.0.0.1

# @var mariadb_global_databases:description: List of databases to create
# @var mariadb_global_databases:example: >
Expand Down
Loading

0 comments on commit fa5e075

Please sign in to comment.