Added draft for mariadb docker role

This commit is contained in:
Kevin Veen-Birkenbach 2023-12-29 22:50:42 +01:00
parent 41b409c8d5
commit 221373e6e3
3 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,27 @@
# MariaDB Docker Ansible Role
## Overview
This Ansible role facilitates the deployment of a MariaDB server using Docker. It is designed to ensure ease of installation and configuration, with the flexibility to adapt to different environments.
## Features
- **Dockerized MariaDB**: Leverages Docker for MariaDB deployment, ensuring consistency across different environments.
- **Customizable Settings**: Allows customization of the MariaDB instance through various Ansible variables.
- **Network Configuration**: Includes setup of a dedicated Docker network for MariaDB.
- **Idempotent Design**: Ensures that repeat runs of the playbook do not result in unwanted changes.
- **Security Focused**: Implements best practices for securing the MariaDB root password.
## Prerequisites
Before using this role, ensure you have the following:
- Ansible installed on the control machine.
- Docker installed on the target host(s).
- Access to the target host(s) via SSH.
## Configuration
Configure the role by setting the required variables. These can be set in the playbook or in a separate variable file:
- `central_mariadb_root_password`: The root password for the MariaDB server.
- `database_databasename`: The name of the initial database to create.
- `database_username`: The username for the database user.
- `database_password`: The password for the database user.
## Contributing
Contributions to this project are welcome. Please submit issues and pull requests with your suggestions.

View File

@ -0,0 +1,21 @@
- name: create database
mysql_db:
name: "{{database_databasename}}"
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database
- name: create database user
mysql_user:
name: "{{database_username}}"
password: "{{database_password}}"
priv: '{{database_databasename}}.*:ALL'
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database

View File

@ -0,0 +1,23 @@
- name: Create Docker network for MariaDB
docker_network:
name: mariadb_network
state: present
when: run_once_backup_docker_to_local is not defined
- name: install MariaDB
docker_container:
name: mariadb
image: mariadb:latest
detach: yes
env:
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
networks:
- name: mariadb_network
published_ports:
- "127.0.0.1:3306:3306"
when: run_once_backup_docker_to_local is not defined
- name: run the docker_mariadb tasks once
set_fact:
run_once_backup_docker_to_local: true
when: run_once_backup_docker_to_local is not defined