{"id":18993203,"url":"https://github.com/hifis-net/ansible-role-gitlab","last_synced_at":"2025-04-16T18:31:25.382Z","repository":{"id":37093888,"uuid":"330629529","full_name":"hifis-net/ansible-role-gitlab","owner":"hifis-net","description":"This role installs and configures the GitLab Omnibus package. ","archived":false,"fork":false,"pushed_at":"2024-05-23T09:15:29.000Z","size":715,"stargazers_count":4,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-23T10:30:21.817Z","etag":null,"topics":["ansible","gitlab","gitlab-omnibus","omnibus"],"latest_commit_sha":null,"homepage":"https://galaxy.ansible.com/hifis/gitlab","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hifis-net.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-18T10:23:00.000Z","updated_at":"2024-05-23T10:30:25.770Z","dependencies_parsed_at":"2024-04-24T11:37:52.369Z","dependency_job_id":"4cd97ad9-cc70-4115-a6e9-bb7b6e3f8e33","html_url":"https://github.com/hifis-net/ansible-role-gitlab","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hifis-net%2Fansible-role-gitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hifis-net%2Fansible-role-gitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hifis-net%2Fansible-role-gitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hifis-net%2Fansible-role-gitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hifis-net","download_url":"https://codeload.github.com/hifis-net/ansible-role-gitlab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223722983,"owners_count":17192041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","gitlab","gitlab-omnibus","omnibus"],"created_at":"2024-11-08T17:20:20.080Z","updated_at":"2024-11-08T17:20:20.667Z","avatar_url":"https://github.com/hifis-net.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2020 Helmholtz Centre for Environmental Research (UFZ)\nSPDX-FileCopyrightText: 2020 Helmholtz-Zentrum Dresden-Rossendorf (HZDR)\n\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n# GitLab Ansible Role\n\n:warning: **This project is archived!** :warning:\n\nThis role has been migrated to our `hifis.toolkit` collection:\n\n- \u003chttps://github.com/hifis-net/ansible-collection-toolkit\u003e\n- \u003chttps://galaxy.ansible.com/ui/repo/published/hifis/toolkit/\u003e\n\n[![CI Status](https://github.com/hifis-net/ansible-role-gitlab/actions/workflows/ci.yml/badge.svg)](https://github.com/hifis-net/ansible-role-gitlab/actions/workflows/ci.yml)\n[![Ansible Galaxy Role](https://img.shields.io/ansible/role/53362?color=orange)](https://galaxy.ansible.com/hifis/gitlab)\n[![Ansible Galaxy Role downloads](https://img.shields.io/ansible/role/d/53362)](https://galaxy.ansible.com/hifis/gitlab)\n[![Ansible Galaxy quality score](https://img.shields.io/ansible/quality/53362)](https://galaxy.ansible.com/hifis/gitlab)\n[![Apache-2.0 Licensed](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/hifis-net/ansible-role-gitlab/blob/main/LICENSES/Apache-2.0.txt)\n[![Latest release](https://img.shields.io/github/v/release/hifis-net/ansible-role-gitlab)](https://github.com/hifis-net/ansible-role-gitlab/releases)\n\nA role to install and configure official GitLab Omnibus package.\n\nCurrently [supported platforms](meta/main.yml) are:\n\n- CentOS 7\n- AlmaLinux 8\n- Debian 11 (Bullseye)\n- Ubuntu 18.04 LTS (Bionic Beaver)\n- Ubuntu 20.04 LTS (Focal Fossa)\n- Ubuntu 22.04 LTS (Jemmy Jellyfish)\n\n## Requirements\n\nNone.\n\n## Role Variables\n\n### Important Role Variables\n\n#### GitLab Edition\n\nThe GitLab edition to install. Please use either `gitlab-ce` for Community\nEdition or `gitlab-ee` for Enterprise Edition.\n\n```yaml\ngitlab_edition: \"gitlab-ee\"\n```\n\n#### GitLab Version and Release\n\nSet a specific GitLab version to install. Please ensure that you also specify\nthe desired release. You can find the available releases\n[here](https://packages.gitlab.com/gitlab).\n\n```yaml\ngitlab_version: \"15.6.1\"\n\n# GitLab Release for RHEL/AlmaLinux 8\ngitlab_release: \"ce.0.el8\"\n\n# GitLab Release for Ubuntu\ngitlab_release: \"ce.0\"\n```\n\n**Please note:** If no GitLab version is specified the role will always install\nthe latest available GitLab package.\n\n#### GPG Key URL\n\nURL to the GPG key that was used to sign the packages.\n\n```yaml\ngitlab_gpg_key_url: \"https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/gpgkey\"\n```\n\n#### GPG Key ID\n\nIdentifier of GPG key that was used to sign the packages.\n\n```yaml\ngitlab_gpg_key_id: \"F6403F6544A38863DAA0B6E03F01618A51312F3F\"\n```\n\n#### Package Repository URL\n\nURL to the package repository based on the operating system.\n\n```yaml\ngitlab_repo_url: \"https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/ubuntu/\"\n```\n\n#### Source Package Repository URL\n\nURL to the source package repository (*CentOS* and *AlmaLinux* only).\n\n```yaml\ngitlab_source_repo_url: \"https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/el/{{ ansible_facts.distribution_major_version }}/SRPMS\"\n```\n\n#### Package Name\n\nName of the GitLab package to install.\n\n```yaml\ngitlab_package_name: \"{{ gitlab_edition + '=' + gitlab_version + '-' + gitlab_release if gitlab_version and gitlab_release else gitlab_edition }}\"\n```\n\n#### Package Dependencies\n\nList of depend packages required by GitLab based on the operating system.\n\n```yaml\ngitlab_dependencies:\n  - apt-transport-https\n  - curl\n  - gnupg\n  - openssh-server\n  - openssl\n  - tzdata\n```\n\n#### URL of your GitLab Instance\n\nGive the URL of your GitLab instance:\n\n```yaml\ngitlab_external_url: 'https://gitlab.example.com'\n```\n\n#### Timezone to Be Used by GitLab\n\nChoose the timezone to be used by GitLab:\n\n```yaml\ngitlab_time_zone: 'Europe/Berlin'\n```\n\n#### Period of Time to Keep Backups\n\nSet the period of time (in seconds) to keep your GitLab backups:\n\n```yaml\ngitlab_backup_keep_time: '604800'\n```\n\n### Optional Role Variables\n\n#### Name of Template for GitLab's Configuration File\n\nSpecify the name of the template for GitLab's configuration file which \nwill be transformed into GitLab's configuration file:\n\n```yaml\ngitlab_configuration_file_template: 'gitlab.rb.j2'\n```\n\n#### Path to GitLab's Configuration File\n\nSpecify the path of the template for GitLab's configuration file which \ncontains custom configurations of your GitLab instance:\n\n```yaml\ngitlab_configuration_file_path: '/etc/gitlab/gitlab.rb'\n```\n\n#### GitLab Theme to Be Used by Default\n\nChoose the Default Theme to be used for new GitLab users:\n\n```yaml\ngitlab_default_theme: '2'\n```\n\n#### Path to GitLab Backups\n\nSet the path to the GitLab backups:\n\n```yaml\ngitlab_backup_path: '/var/opt/gitlab/backups'\n```\n\n#### Port on Which Web-Server Nginx is Listening on\n\nSet the port GitLab's web-server Nginx is listening on:\n\n```yaml\ngitlab_nginx_listen_port: '80'\n```\n\n#### Does Web-Server Nginx accept HTTPS Requests?\n\nChoose whether GitLab's web-server Nginx accepts HTTPS requests:\n\n```yaml\ngitlab_nginx_listen_https: 'false'\n```\n\n#### Does Web-Server Nginx Redirect HTTP Requests to HTTPS?\n\nChoose whether GitLab's web-server Nginx redirects HTTP requests to HTTPS:\n\n```yaml\ngitlab_nginx_redirect_http_to_https: 'false'\n```\n\n#### Set GitLab feature flags\n\nSet [GitLab feature flags](https://docs.gitlab.com/ee/user/feature_flags.html)\nto enable or disable additional features.\nThe variable is a list of key-value pairs which requires the `name` of the\nfeature flag and its boolean state `enabled`.\nThe default value is set to an empty list `[]`.\n\n```yaml\ngitlab_feature_flags:\n  - name: \"vscode_web_ide\"\n    enabled: true\n  - name: \"chatops\"\n    enabled: true\n  - name: \"webauthn\"\n    enabled: false  \n```\n\n#### Mattermost only use case\n\nThis role can be used to run Mattermost without deploying GitLab. In this\nscenario services like _sidekiq_ or _puma_ are not required. Set to `true` to\nprevent the role from reloading those services:\n\n```yaml\ngitlab_mattermost_only_context: 'false'\n```\n\n### Variables to be Set if External Redis is Used\n\n#### Switch to Use External Redis Instance\n\nSet switch to `false` to enable external Redis instance:\n\n```yaml\ngitlab_use_internal_redis: 'false'\n```\n\n#### Password to Authenticate Redis Services within Cluster\n\nIt is recommended to enable authentication for Redis Master and Redis Replicas\nby providing the respective password:\n\n```yaml\ngitlab_redis_password: 'changeme'\n```\n\n_Caution: You have to use your own private and encrypted password here._\n\n#### Password to Authenticate Redis Sentinels\n\nSupport for Redis Sentinel password authentication was introduced in GitLab 16.1.\n\n```yaml\ngitlab_redis_sentinel_password: 'changeme'\n```\n\n_Caution: You have to use your own private and encrypted password here._\n\n#### Reference Name of the Redis Cluster\n\nChoose a name of the Redis Cluster for references:\n\n```yaml\ngitlab_redis_cluster_name: 'redis-cluster'\n```\n\n#### List of IP addresses of Redis Sentinel Servers\n\nAdd a list of IP addresses of the involved Redis Sentinel servers:\n\n```yaml\ngitlab_redis_sentinel_ips:\n  - '192.168.33.11'\n  - '192.168.33.12'\n  - '192.168.33.13'\n```\n\n#### Port on Which Redis Sentinel Servers are Listening\n\nChoose port on which Redis Sentinel servers are listening:\n\n```yaml\ngitlab_redis_sentinel_port: '26379'\n```\n\n#### Whitelist IP Address Range for Monitoring Redis Sentinel Servers\n\nRange of GitLab IP addresses that are allowed to monitor Redis Sentinel servers:\n\n```yaml\ngitlab_ip_range: '{{ ansible_facts.default_ipv4.address }}/24'\n```\n\n### Variables to be Set if External Gitaly is Used\n\n#### Switch to Use External Gitaly Instance\n\nSet switch to `false` to enable external Gitaly instance:\n\n```yaml\ngitlab_use_internal_gitaly: 'false'\n```\n\n#### Path to GitLab Data Directory\n\nSpecify where to put the GitLab data directory:\n\n```yaml\ngitlab_git_data_dir: \"/var/opt/gitlab/git-data\"\n```\n\n#### Gitaly Authentication Token\n\nA Gitaly authentication token needs to be given:\n\n```yaml\ngitlab_gitaly_token: 'changeme'\n```\n\n_Caution: You have to use your own private and encrypted password here._\n\n#### GitLab Shell Token\n\nA GitLab shell token needs to be given:\n\n```yaml\ngitlab_secret_token: 'changeme'\n```\n\n_Caution: You have to use your own private and encrypted password here._\n\n#### Gitaly IP Address\n\nSpecify IP address of the Gitaly instance:\n\n```yaml\ngitlab_gitaly_instance_ip: '127.0.0.1'\n```\n\n#### Gitaly Port\n\nSpecify port of the Gitaly instance:\n\n```yaml\ngitlab_gitaly_instance_port: '8075'\n```\n\n### Variables to be Set if External PostgreSQL Database is Used\n\n#### Switch to Use External PostgreSQL Database Instance\n\nSet switch to `false` to enable external PostgreSQL Database instance:\n\n```yaml\ngitlab_use_internal_postgresql: 'false'\n```\n\n#### IP Address of External PostgreSQL Database Instance\n\nSet IP Address of PostgreSQL Database instance:\n\n```yaml\ngitlab_postgresql_db_host: '127.0.0.1'\n```\n\n#### Password for External PostgreSQL Database Instance\n\nSet password of PostgreSQL Database instance:\n\n```yaml\ngitlab_postgresql_db_password: 'changeme'\n```\n\n_Caution: You have to use your own private and encrypted password here._\n\n#### Configure GitLab Registry\n\nEnable GitLab container registry:\n```yaml\ngitlab_registry_enable: \"true\"\n```\n\n_Please note_: If you do not run a load balancer in front of GitLab and let\nNGinx care about SSL encryption, please also configure\n`registry_nginx['ssl_certificate']` and `registry_nginx['ssl_certificate_key']`\nvia `gitlab_additional_configurations`.\n\n### Additional Configurations given as Role Variables\n\nAny other configurations that are not yet part of GitLab's configuration file\ncan be given by Ansible role variables.\n\n#### Configurations via Dictionary-like Ruby Variables\n\nRuby variables that are not part of GitLab's configuration file\ncan be given by Ansible role variables.\n\n**Code Attribution / Terms of Use:**\n\nThis idea of\n[generic key-value pairs](https://github.com/geerlingguy/ansible-role-gitlab/blob/master/templates/gitlab.rb.j2)\nis attributed to the work of \n[Jeff Geerling](https://github.com/geerlingguy)\nwhich is originally licensed under the MIT License.\n\n**Usage example:**\n\n```yaml\ngitlab_additional_configurations:\n  - gitlab_rails:\n      - key: \"time_zone\"\n        value: \"Europe/Berlin\"\n  - nginx:\n      - key: \"listen_port\"\n        type: \"plain\"\n        value: \"80\"\n      - key: \"listen_https\"\n        type: \"plain\"\n        value: \"false\"\n```\n\n**Resulting configuration:**\n\n```ruby\ngitlab_rails['time_zone'] = 'Europe/Berlin'\nnginx['listen_port'] = 80\nnginx['listen_https'] = false\n```\n\n#### Configurations via Ruby Function Calls\n\nRuby function calls that are not part of GitLab's configuration file\ncan be given by Ansible role variables.\n\n**Usage example:**\n\n```yaml\ngitlab_ruby_configuration_calls:\n  - key: \"pages_external_url\"\n    value: \"https://pages.example.com\"\n  - key: \"registry_external_url\"\n    value: \"https://registry.example.com\"\n  - key: \"mattermost_external_url\"\n    value: \"https://mattermost.example.com\"\n```\n\n**Resulting configuration:**\n\n```ruby\nregistry_external_url \"https://registry.example.com\"\npages_external_url \"https://pages.example.com\"\nmattermost_external_url \"https://mattermost.example.com\"\n```\n\n## Dependencies\n\nNone.\n\n## License\n\n[Apache-2.0](LICENSES/Apache-2.0.txt)\n\n## Author Information\n\n[HIFIS Software Team](https://software.hifis.net)\n\n## Contributors\n\nWe would like to thank and give credits to the following contributors of this\nproject:\n\n* [flyinggecko](https://github.com/flyinggecko)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhifis-net%2Fansible-role-gitlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhifis-net%2Fansible-role-gitlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhifis-net%2Fansible-role-gitlab/lists"}