mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-12-05 02:28:06 +01:00
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# 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`).
|
|
- `database_name`: Name of the database to be created.
|
|
- `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.
|
|
|
|
## 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
|
|
```
|
|
|
|
## 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. |