2023-12-29 23:58:57 +01:00
# Docker-Postgres Ansible Role
## Overview
This Ansible role is designed to deploy a PostgreSQL database using Docker. It includes tasks for setting up a Docker network, installing PostgreSQL in a Docker container, and initializing the database with a specified user and database.
## Role Variables
- `central_postgres_password` : The password for the PostgreSQL superuser (`postgres`).
2024-01-06 14:32:49 +01:00
- `database_name` : Name of the database to be created.
2023-12-29 23:58:57 +01:00
- `database_username` : Username for the database user.
- `database_password` : Password for the database user.
## Role Tasks
1. **Create Docker network for PostgreSQL** : Sets up a Docker network for PostgreSQL communication.
2. **Install PostgreSQL** : Deploys PostgreSQL in a Docker container, attaching it to the created network and setting the superuser password.
3. **Run the docker_postgres tasks once** : Ensures that the tasks are only run once to avoid redundancy.
## Handlers
- **Create database**: Creates a new database with the specified name.
- **Create database user**: Sets up a user with full privileges on the newly created database.
## Usage
1. Set the required variables in your playbook or inventory file.
2. Include this role in your playbook.
3. Run the playbook against the target host.
2024-05-26 23:24:00 +02:00
## Root Access
To access the database via the root account execute the following on the server:
```bash
docker exec -it central-postgres psql -U postgres
```
2023-12-29 23:58:57 +01:00
## Notes
- The PostgreSQL server is bound to `127.0.0.1:5432` on the host machine, making it accessible only from localhost.
- Ensure that the provided passwords are secure and stored securely, preferably using Ansible Vault or another encryption method.