{"id":19402095,"url":"https://github.com/robertdebock/ansible-role-gitlab","last_synced_at":"2025-04-24T07:30:55.647Z","repository":{"id":41303122,"uuid":"440584007","full_name":"robertdebock/ansible-role-gitlab","owner":"robertdebock","description":"Install and configure GitLab on your system.","archived":false,"fork":false,"pushed_at":"2024-10-29T08:54:06.000Z","size":180,"stargazers_count":19,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-20T10:16:39.996Z","etag":null,"topics":["ansible","development","gitlab","molecule","playbook","tox"],"latest_commit_sha":null,"homepage":"https://robertdebock.nl/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertdebock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"robertdebock"}},"created_at":"2021-12-21T16:36:15.000Z","updated_at":"2024-10-29T08:53:51.000Z","dependencies_parsed_at":"2024-11-10T11:24:16.917Z","dependency_job_id":null,"html_url":"https://github.com/robertdebock/ansible-role-gitlab","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-gitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-gitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-gitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-gitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertdebock","download_url":"https://codeload.github.com/robertdebock/ansible-role-gitlab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250582836,"owners_count":21453917,"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","development","gitlab","molecule","playbook","tox"],"created_at":"2024-11-10T11:21:35.827Z","updated_at":"2025-04-24T07:30:55.361Z","avatar_url":"https://github.com/robertdebock.png","language":"Jinja","funding_links":["https://github.com/sponsors/robertdebock"],"categories":[],"sub_categories":[],"readme":"# [Ansible role gitlab](#gitlab)\n\nInstall and configure GitLab on your system.\n\n|GitHub|GitLab|Downloads|Version|\n|------|------|---------|-------|\n|[![github](https://github.com/robertdebock/ansible-role-gitlab/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-gitlab/actions)|[![gitlab](https://gitlab.com/robertdebock-iac/ansible-role-gitlab/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-gitlab)|[![downloads](https://img.shields.io/ansible/role/d/robertdebock/gitlab)](https://galaxy.ansible.com/robertdebock/gitlab)|[![Version](https://img.shields.io/github/release/robertdebock/ansible-role-gitlab.svg)](https://github.com/robertdebock/ansible-role-gitlab/releases/)|\n\n## [Example Playbook](#example-playbook)\n\nThis example is taken from [`molecule/default/converge.yml`](https://github.com/robertdebock/ansible-role-gitlab/blob/master/molecule/default/converge.yml) and is tested on each push, pull request and release.\n\n```yaml\n---\n- name: Converge\n  hosts: all\n  become: true\n  gather_facts: true\n\n  roles:\n    - role: robertdebock.gitlab\n      gitlab_letsencrypt: false\n      gitlab_cleanup_ruby: false\n      gitlab_trusted_certs:\n        - isrgrootx1.pem  # A root certificate for letsencrypt.\n```\n\nThe machine needs to be prepared. In CI this is done using [`molecule/default/prepare.yml`](https://github.com/robertdebock/ansible-role-gitlab/blob/master/molecule/default/prepare.yml):\n\n```yaml\n---\n- name: Prepare\n  hosts: all\n  become: true\n  gather_facts: false\n\n  roles:\n    - role: robertdebock.bootstrap\n```\n\nAlso see a [full explanation and example](https://robertdebock.nl/how-to-use-these-roles.html) on how to use these roles.\n\n## [Role Variables](#role-variables)\n\nThe default values for the variables are set in [`defaults/main.yml`](https://github.com/robertdebock/ansible-role-gitlab/blob/master/defaults/main.yml):\n\n```yaml\n---\n# defaults file for gitlab\n\n# Specify a specific version for GitLab to install.\n# Please have a look at this repository for available package version:\n# community: \"https://packages.gitlab.com/gitlab/gitlab-ce\"\n# enterprise: \"https://packages.gitlab.com/gitlab/gitlab-ee\"\ngitlab_version: \"16.0.3\"\n\n# A part of the version is the \"release\", mostly \"0\". See repositories above.\ngitlab_release: 0\n\n# Choose to install \"enterprise\" or \"community\".\ngitlab_distribution: community\n\n# Would you like Ansible to show you the initial_root_password?\ngitlab_show_initial_root_password: false\n\n# Instead of defining the variables below, you can also simply copy a configuration file.\n# Place this file into the `files` directory that hosts the playbooks.\n# To configure GitLab using variables, comment this line\n# gitlab_configuration_file: gitlab.rb\n\n# The configuration below is only required when **not** placing a configuration file.\n\n# The URL where the gitlab installation will be made available on.\n# For \"https\", let's encrypt will be used.\ngitlab_external_url: \"http://localhost\"\n\n# Set the preferred timezone.\ngitlab_rails_time_zone: UTC\n\n# The syntax of `gitlab.rb` will be tested before applying this role. The\n# package `ruby` is required for that. By default `ruby` is installed and\n# uninstalled. This makes the role not idempotent, so CI ruby is not un-\n# installed.\ngitlab_cleanup_ruby: true\n\n# This role checks for outstanding database migrations. The role wil wait for\n# migrations to finish. This value is in minutes.\ngitlab_database_migrations_retries: 300\n\n# You can install all roles by not specifying any role, or select a few roles.\n# gitlab_roles:\n#   - redis_sentinel_role\n#   - redis_master_role\n#   - redis_replica_role\n#   - geo_primary_role\n#   - geo_secondary_role\n#   - postgres_role\n#   - consul_role\n#   - application_role\n#   - monitoring_role\n\n# You can set the default theme for the GitLab ui. Pick any one from:\n# indigo, dark, light, blue, green, lightindigo, lightblue, lightgreen,\n# red or lightred. (Nerds call \"pink\" \"redlight\")\ngitlab_default_theme: dark\n\n# You can disable features for newly created projects.\ngitlab_default_projects_features_issues: true\ngitlab_default_projects_features_merge_requests: true\ngitlab_default_projects_features_wiki: true\ngitlab_default_projects_features_snippets: true\ngitlab_default_projects_features_builds: true\ngitlab_default_projects_features_container_registry: true\n\n# LDAP settings.\ngitlab_rails_ldap_enabled: false\ngitlab_rails_prevent_ldap_sign_in: false\n# When `gitlab_rails_ldap_enabled` is set to `yes`, you need to define (at\n# least on) `gitlab_rails_ldap_servers`.\n# gitlab_rails_ldap_servers:\n#   - name: main\n#     label: LDAP\n#     host: _your_ldap_server\n#     port: 389\n#     uid: sAMAccountName\n#     bind_dn: _the_full_dn_of_the_user_you_will_bind_with\n#     password: _the_password_of_the_bind_user\n#     encryption: plain\n#     verify_certificates: true\n#     smartcard_auth: true\n#     active_directory: true\n#     allow_username_or_email_login: false\n#     lowercase_usernames: false\n#     block_auto_created_users: false\n#     base: \"\"\n#     user_filter: \"\"\n#     # These settings are only available when `gitlab_distribution` is set to\n#     # the value `enterprise`.\n#     # group_base: \"\"\n#     # admin_group: \"\"\n#     # sync_ssh_keys: false\n#   - name: secondary\n#     label: LDAP\n#     host: _your_ldap_server\n#     port: 389\n#     uid: sAMAccountName\n#     bind_dn: _the_full_dn_of_the_user_you_will_bind_with\n#     password: _the_password_of_the_bind_user\n#     encryption: plain\n#     verify_certificates: true\n#     smartcard_auth: true\n#     active_directory: true\n#     allow_username_or_email_login: false\n#     lowercase_usernames: false\n#     block_auto_created_users: false\n#     base: \"\"\n#     user_filter: \"\"\n#     # These settings are only available when `gitlab_distribution` is set to\n#     # the value `enterprise`.\n#     # group_base: \"\"\n#     # admin_group: \"\"\n#     # sync_ssh_keys: false\n\n# Backup settings.\ngitlab_rails_manage_backup_path: true\ngitlab_rails_backup_path: /var/opt/gitlab/backups\ngitlab_rails_backup_gitaly_backup_path: /opt/gitlab/embedded/bin/gitaly-backup\ngitlab_rails_backup_archive_permissions: \"0644\"\ngitlab_rails_backup_pg_schema: public\ngitlab_rails_backup_keep_time: 604800\n\n# You can save backups on AWS S3.\n# gitlab_rails_backup_upload_connection:\n#   provider: AWS\n#   region: eu-west-1\n#   aws_access_key_id: AKIAKIAKI\n#   aws_secret_access_key: secret123\n#   use_iam_profile: false\n# gitlab_rails_backup_upload_remote_directory: my.s3.bucket\n# gitlab_rails_backup_multipart_chunk_size: 104857600\n# gitlab_rails_backup_encryption: AES256\n# gitlab_rails_backup_encryption_key: \"base64-encoded encryption key\"\n# gitlab_rails_backup_upload_storage_options:\n#   server_side_encryption: \"aws:kms\"\n#   server_side_encryption_kms_key_id: \"arn:aws:kms:YOUR-KEY-ID-HERE\"\n# gitlab_rails_backup_storage_class: STANDARD\n\n# You can also save a backup on DigitalOcean Spaces.\n# gitlab_rails_backup_upload_connection:\n#   provider: AWS\n#   region: ams3\n#   aws_access_key_id: AKIAKIAKI\n#   aws_secret_access_key: secret123\n#   endpoint: \"https://ams3.digitaloceanspaces.com\"\n# gitlab_rails_backup_upload_remote_directory: my.s3.bucket\n\n# You can skip parts in a backup.\n# gitlab_rails_env:\n#   SKIP: db,uploads,repositories,builds,artifacts,lfs,registry,pages\n\n# SMTP settings.\ngitlab_rails_smtp_enable: true\ngitlab_rails_smtp_address: smtp.server\ngitlab_rails_smtp_port: 465\ngitlab_rails_smtp_user_name: smtp user\ngitlab_rails_smtp_password: smtp password\ngitlab_rails_smtp_domain: example.com\ngitlab_rails_smtp_authentication: login\ngitlab_rails_smtp_enable_starttls_auto: true\ngitlab_rails_smtp_tls: false\ngitlab_rails_smtp_pool: false\ngitlab_rails_smtp_openssl_verify_mode: none\ngitlab_rails_smtp_ca_path: /etc/ssl/certs\ngitlab_rails_smtp_ca_file: /etc/ssl/certs/ca-certificates.crt\n\n# E-mail settings.\ngitlab_rails_gitlab_email_enabled: true\ngitlab_rails_gitlab_email_from: \"example@example.com\"\ngitlab_rails_gitlab_email_display_name: Example\ngitlab_rails_gitlab_email_reply_to: \"noreply@example.com\"\ngitlab_rails_gitlab_email_subject_suffix: \"\"\ngitlab_rails_gitlab_email_smime_enabled: false\ngitlab_rails_gitlab_email_smime_key_file: /etc/gitlab/ssl/gitlab_smime.key\ngitlab_rails_gitlab_email_smime_cert_file: /etc/gitlab/ssl/gitlab_smime.crt\ngitlab_rails_gitlab_email_smime_ca_certs_file: /etc/gitlab/ssl/gitlab_smime_cas.crt\n\n# User settings.\n# gitlab_rails['gitlab_default_can_create_group'] = true\n# gitlab_rails['gitlab_username_changing_enabled'] = true\n\n# Gravater settings.\n# gitlab_rails['gravatar_plain_url'] = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}\u0026d=identicon'\n# gitlab_rails['gravatar_ssl_url'] = 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}\u0026d=identicon'\n\n# Cron jobs settings, only when `gitlab_distribution` == `enterprise`.\n# gitlab_rails['geo_file_download_dispatch_worker_cron'] = \"*/10 * * * *\"\n# gitlab_rails['geo_repository_sync_worker_cron'] = \"*/5 * * * *\"\n# gitlab_rails['geo_secondary_registry_consistency_worker'] = \"* * * * *\"\n# gitlab_rails['geo_secondary_usage_data_cron_worker'] = \"0 0 * * 0\"\n# gitlab_rails['geo_prune_event_log_worker_cron'] = \"*/5 * * * *\"\n# gitlab_rails['geo_repository_verification_primary_batch_worker_cron'] = \"*/5 * * * *\"\n# gitlab_rails['geo_repository_verification_secondary_scheduler_worker_cron'] = \"*/5 * * * *\"\n# gitlab_rails['ldap_sync_worker_cron'] = \"30 1 * * *\"\n# gitlab_rails['ldap_group_sync_worker_cron'] = \"0 * * * *\"\n# gitlab_rails['historical_data_worker_cron'] = \"0 12 * * *\"\n# gitlab_rails['pseudonymizer_worker_cron'] = \"0 23 * * *\"\n# gitlab_rails['elastic_index_bulk_cron'] = \"*/1 * * * *\"\n# gitlab_rails['analytics_devops_adoption_create_all_snapshots_worker_cron'] = \"0 4 * * 0\"\n\n# Incoming email settings.\n# gitlab_rails['incoming_email_address'] = \"gitlab-incoming+%{key}@gmail.com\"\n# gitlab_rails['incoming_email_email'] = \"gitlab-incoming@gmail.com\"\n# gitlab_rails['incoming_email_password'] = \"[REDACTED]\"\n# gitlab_rails['incoming_email_host'] = \"imap.gmail.com\"\n# gitlab_rails['incoming_email_port'] = 993\n# gitlab_rails['incoming_email_ssl'] = true\n# gitlab_rails['incoming_email_start_tls'] = false\n# gitlab_rails['incoming_email_mailbox_name'] = \"inbox\"\n# gitlab_rails['incoming_email_idle_timeout'] = 60\n# gitlab_rails['incoming_email_log_file'] = \"/var/log/gitlab/mailroom/mail_room_json.log\"\n# gitlab_rails['incoming_email_expunge_deleted'] = false\n# gitlab_rails['incoming_email_inbox_method'] = 'microsoft_graph'\n# gitlab_rails['incoming_email_inbox_options'] = {\n#    'tenant_id': 'YOUR-TENANT-ID',\n#    'client_id': 'YOUR-CLIENT-ID',\n#    'client_secret': 'YOUR-CLIENT-SECRET',\n#    'poll_interval': 60  # Optional\n# }\n\n# Settings for artifacts.\n# gitlab_rails['artifacts_enabled'] = true\n# gitlab_rails['artifacts_path'] = \"/var/opt/gitlab/gitlab-rails/shared/artifacts\"\n# gitlab_rails['artifacts_object_store_enabled'] = false\n# gitlab_rails['artifacts_object_store_direct_upload'] = false\n# gitlab_rails['artifacts_object_store_background_upload'] = true\n# gitlab_rails['artifacts_object_store_proxy_download'] = false\n# gitlab_rails['artifacts_object_store_remote_directory'] = \"artifacts\"\n# gitlab_rails['artifacts_object_store_connection'] = {\n#   'provider' =\u003e 'AWS',\n#   'region' =\u003e 'eu-west-1',\n#   'aws_access_key_id' =\u003e 'AWS_ACCESS_KEY_ID',\n#   'aws_secret_access_key' =\u003e 'AWS_SECRET_ACCESS_KEY',\n#   # # The below options configure an S3 compatible host instead of AWS\n#   # 'aws_signature_version' =\u003e 4, # For creation of signed URLs. Set to 2 if provider does not support v4.\n#   # 'endpoint' =\u003e 'https://s3.amazonaws.com', # default: nil - Useful for S3 compliant services such as DigitalOcean Spaces\n#   # 'host' =\u003e 's3.amazonaws.com',\n#   # 'path_style' =\u003e false # Use 'host/bucket_name/object' instead of 'bucket_name.host/object'\n# }\n\n# Settings for OmniAuth\n# gitlab_rails['omniauth_enabled'] = nil\n# gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']\n# gitlab_rails['omniauth_sync_email_from_provider'] = 'saml'\n# gitlab_rails['omniauth_sync_profile_from_provider'] = ['saml']\n# gitlab_rails['omniauth_sync_profile_attributes'] = ['email']\n# gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml'\n# gitlab_rails['omniauth_block_auto_created_users'] = true\n# gitlab_rails['omniauth_auto_link_ldap_user'] = false\n# gitlab_rails['omniauth_auto_link_saml_user'] = false\n# gitlab_rails['omniauth_auto_link_user'] = ['saml']\n# gitlab_rails['omniauth_external_providers'] = ['twitter', 'google_oauth2']\n# gitlab_rails['omniauth_allow_bypass_two_factor'] = ['google_oauth2']\n# gitlab_rails['omniauth_providers'] = [\n#   {\n#     \"name\" =\u003e \"google_oauth2\",\n#     \"app_id\" =\u003e \"YOUR APP ID\",\n#     \"app_secret\" =\u003e \"YOUR APP SECRET\",\n#     \"args\" =\u003e { \"access_type\" =\u003e \"offline\", \"approval_prompt\" =\u003e \"\" }\n#   }\n# ]\n# gitlab_rails['omniauth_cas3_session_duration'] = 28800\n# gitlab_rails['omniauth_saml_message_max_byte_size'] = 250000\n\n# Settings for git storage\n# git_data_dirs({\n#   \"default\" =\u003e {\n#     \"path\" =\u003e \"/mnt/nfs-01/git-data\"\n#    }\n# })\n\n# Settings for uploads\n# gitlab_rails['uploads_directory'] = \"/var/opt/gitlab/gitlab-rails/uploads\"\n# gitlab_rails['uploads_storage_path'] = \"/opt/gitlab/embedded/service/gitlab-rails/public\"\n# gitlab_rails['uploads_base_dir'] = \"uploads/-/system\"\n# gitlab_rails['uploads_object_store_enabled'] = false\n# gitlab_rails['uploads_object_store_direct_upload'] = false\n# gitlab_rails['uploads_object_store_background_upload'] = true\n# gitlab_rails['uploads_object_store_proxy_download'] = false\n# gitlab_rails['uploads_object_store_remote_directory'] = \"uploads\"\n# gitlab_rails['uploads_object_store_connection'] = {\n#   'provider' =\u003e 'AWS',\n#   'region' =\u003e 'eu-west-1',\n#   'aws_access_key_id' =\u003e 'AWS_ACCESS_KEY_ID',\n#   'aws_secret_access_key' =\u003e 'AWS_SECRET_ACCESS_KEY',\n#   # # The below options configure an S3 compatible host instead of AWS\n#   # 'host' =\u003e 's3.amazonaws.com',\n#   # 'aws_signature_version' =\u003e 4, # For creation of signed URLs. Set to 2 if provider does not support v4.\n#   # 'endpoint' =\u003e 'https://s3.amazonaws.com', # default: nil - Useful for S3 compliant services such as DigitalOcean Spaces\n#   # 'path_style' =\u003e false # Use 'host/bucket_name/object' instead of 'bucket_name.host/object'\n# }\n\n# Database settings\n# If you are using the internal database, set `gitlab_rails_db_enabled` to \"no\".\ngitlab_rails_db_enabled: false\ngitlab_rails_db_adapter: postgresql\ngitlab_rails_db_encoding: unicode\n# gitlab_rails_db_collation:\ngitlab_rails_db_database: gitlabhq_production\ngitlab_rails_db_username: gitlab\ngitlab_rails_db_password: \"Som3P@s5w0rd\"\ngitlab_rails_db_host: localhost\ngitlab_rails_db_port: 5432\n# gitlab_rails_db_socket:\n# gitlab_rails_db_sslmode:\ngitlab_rails_db_sslcompression: 0\n# gitlab_rails_db_sslrootcert:\n# gitlab_rails_db_sslcert:\n# gitlab_rails_db_sslkey:\ngitlab_rails_db_prepared_statements: false\ngitlab_rails_db_statements_limit: 1000\n# gitlab_rails_db_connect_timeout:\n# gitlab_rails_db_keepalives:\n# gitlab_rails_db_keepalives_idle:\n# gitlab_rails_db_keepalives_interval:\n# gitlab_rails_db_keepalives_count:\n# gitlab_rails_db_tcp_user_timeout:\n# gitlab_rails_db_application_name:\n\n# SSL settings\n# # If you do not want to use SSL, use this structure.\n# gitlab_letsencrypt: false\n# gitlab_external_url: \"http://gitlab.example.com\" # (No `https` in the value.)\n# # If you bring your own certificates, use this structure.\n# gitlab_letsencrypt: false\n# gitlab_ssl_directory: /etc/gitlab/ssl\n# gitlab_ssl_key: some_file.key\n# gitlab_ssl_crt: some_file.crt\n# # If you'd like to use letsencrypt, use this scructure.\n# gitlab_letsencrypt: true\n# gitlab_letsencrypt_contact_emails:\n#   - robert@meinit.nl\n# gitlab_acme_staging_endpoint: https://ca.internal/acme/acme/directory\n# gitlab_acme_production_endpoint: https://ca.internal/acme/acme/directory\n# gitlab_letsencrypt_group: root\n# gitlab_letsencrypt_key_size: 2048\n# gitlab_letsencrypt_owner: root\n# gitlab_letsencrypt_wwwroot: /var/opt/gitlab/nginx/www\n# gitlab_letsencrypt_auto_renew: true\n# gitlab_letsencrypt_auto_renew_hour: 0\n# gitlab_letsencrypt_auto_renew_minute: nil\n# gitlab_letsencrypt_auto_renew_day_of_month: nil\n# gitlab_letsencrypt_auto_renew_log_directory: /var/log/gitlab/lets-encrypt\n\n# In case you need to trust a (CA) certificate to access remote resources,\n# like an LDAP server, download the (CA) certificate, place it in the `files`\n# directory and refer to it in the below list.\n# gitlab_trusted_certs:\n#   - my-ca-1.crt\n#   - my-1.crt\n```\n\n## [Requirements](#requirements)\n\n- pip packages listed in [requirements.txt](https://github.com/robertdebock/ansible-role-gitlab/blob/master/requirements.txt).\n\n## [State of used roles](#state-of-used-roles)\n\nThe following roles are used to prepare a system. You can prepare your system in another way.\n\n| Requirement | GitHub | GitLab |\n|-------------|--------|--------|\n|[robertdebock.bootstrap](https://galaxy.ansible.com/robertdebock/bootstrap)|[![Build Status GitHub](https://github.com/robertdebock/ansible-role-bootstrap/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-bootstrap/actions)|[![Build Status GitLab](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap)|\n\n## [Context](#context)\n\nThis role is a part of many compatible roles. Have a look at [the documentation of these roles](https://robertdebock.nl/) for further information.\n\nHere is an overview of related roles:\n![dependencies](https://raw.githubusercontent.com/robertdebock/ansible-role-gitlab/png/requirements.png \"Dependencies\")\n\n## [Compatibility](#compatibility)\n\nThis role has been tested on these [container images](https://hub.docker.com/u/robertdebock):\n\n|container|tags|\n|---------|----|\n|[EL](https://hub.docker.com/r/robertdebock/enterpriselinux)|9|\n|[Ubuntu](https://hub.docker.com/r/robertdebock/ubuntu)|focal|\n\nThe minimum version of Ansible required is 2.12, tests have been done to:\n\n- The previous version.\n- The current version.\n- The development version.\n\nIf you find issues, please register them in [GitHub](https://github.com/robertdebock/ansible-role-gitlab/issues).\n\n## [License](#license)\n\n[Apache-2.0](https://github.com/robertdebock/ansible-role-gitlab/blob/master/LICENSE).\n\n## [Author Information](#author-information)\n\n[robertdebock](https://robertdebock.nl/)\n\nPlease consider [sponsoring me](https://github.com/sponsors/robertdebock).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fansible-role-gitlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertdebock%2Fansible-role-gitlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fansible-role-gitlab/lists"}