This Ansible playbook automates the deployment of a High Availability GitLab instance with Keycloak Single Sign-On (SSO). The setup includes multiple GitLab nodes for improved reliability and scalability. It uses Ansible roles and variables to make the deployment process modular and customizable. The Keycloak instance runs in a Docker container, while GitLab is deployed directly. Additionally, a reverse proxy is configured to manage the traffic. This setup allows for seamless automation of infrastructure deployment while ensuring secure access through Keycloak. The setup also includes Data Replication with DRBD and distributed storage with Ceph on de.NBI cloud.
- Ansible is installed on your control machine where you plan to run the playbook.
- Remote machines provisioned with a compatible OS.
- A domain name pointing to the IP address of the reverse proxy.
- SSH access to all target servers with sudo privileges.
- A basic understanding of GitLab and its architecture.
- The inventory file is configured with the target server details.
- Inventory File: Modify the inventory file with the target server details.
- In the
roles
repository, there are sub-repositories for GitLab, Keycloak, and nginix-proxy. Edit Variables, yml files, and config files located in each sub-repository to match your environment.
Basically, this playbook aims to get you up-and-running with all the necessities around GitLab, without you having to do anything else.
- Ensure that your servers meet the hardware and software requirements for GitLab, Keycloak, DRBD, and Ceph.
- This playbook assumes a fresh installation. Ensure there is no conflicting software on the target servers.
-
Access GitLab:
- URL: http://gitlab_instance_ip
- Initial login credentials: admin / your_chosen_password
-
Access Keycloak:
- URL: http://keycloak_instance_ip:8080
- Initial login credentials: admin / admin
-
DRBD and Ceph:
- Verify the status and health of DRBD and Ceph after the deployment.
Regularly update the inventory files, yml files, and variables for any changes in the environment. Check for updates to GitLab, Keycloak, DRBD, and Ceph. Update variables accordingly.
Our GitLab DataHub installation utilizes the following components:
- Denbi OpenStack: An open-source cloud computing platform, providing scalable and flexible virtualized resources.
- Ceph Storage: A distributed object storage and file system designed to provide excellent performance, reliability, and scalability.
This playbook evolves over time, sometimes with backward-incompatible changes.
When updating the playbook, refer to the changelog to catch up with what's new.
This project is based on the work of matrix ansible.