mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-25 06:01:04 +01:00
Added draft for mariadb docker role
This commit is contained in:
parent
41b409c8d5
commit
221373e6e3
27
roles/docker-mariadb/README.md
Normal file
27
roles/docker-mariadb/README.md
Normal 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.
|
21
roles/docker-mariadb/handlers/main.yml
Normal file
21
roles/docker-mariadb/handlers/main.yml
Normal 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
|
23
roles/docker-mariadb/tasks/main.yml
Normal file
23
roles/docker-mariadb/tasks/main.yml
Normal 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
|
Loading…
Reference in New Issue
Block a user