Docker-GitLab Ansible Role¶
Overview¶
This Ansible role is designed for setting up and managing a GitLab server running in a Docker container. It automates the process of installing GitLab, configuring its environment, and managing dependencies such as a PostgreSQL database and an Nginx reverse proxy.
Features¶
GitLab Installation: Automatically deploys GitLab using Docker.
External PostgreSQL Database: Configures GitLab to use an external PostgreSQL database.
Nginx Reverse Proxy Integration: Includes tasks for setting up an Nginx reverse proxy for GitLab.
Customizable Configuration: Variables and templates allow for easy customization.
Requirements¶
Docker and Docker Compose installed on the target machine.
Ansible for automation.
Role Variables¶
Variables are defined in vars/main.yml
. Key variables include:
docker_compose.directories.instance
: Directory for Docker Compose instances.application_id
,database_host
,database_name
,database_username
,database_password
: Database configuration variables.
Handlers¶
recreate gitlab
: Restarts GitLab using Docker Compose when changes are detected.
Dependencies¶
nginx-docker-reverse-proxy
: A role for setting up an Nginx reverse proxy for GitLab.
Template Files¶
docker-compose.yml.j2
: Jinja2 template for the Docker Compose configuration.Additional templates for database and proxy configuration.
Usage¶
Include this role in your Ansible playbooks and specify the necessary variables. Run the playbook to deploy and configure GitLab in a Docker environment.
For a detailed walkthrough and explanation of this role, refer to the conversation at ChatGPT Session Transcript.
Other Resources¶
https://ralph.blog.imixs.com/2019/06/09/running-gitlab-on-docker/
Performance Optimation¶
https://techoverflow.net/2020/04/18/how-i-reduced-gitlab-memory-consumption-in-my-docker-based-setup/