geerlingguy.gitlab

Ansible角色:GitLab

已弃用:在2023年9月,我已弃用此角色,因为我不再维护任何GitLab实例,并转而使用Gitea进行个人工作。请考虑分叉此角色或使用其他人的GitLab角色。

CI

在任何RedHat/CentOS或Debian/Ubuntu Linux系统上安装GitLab,这是一个基于Ruby的Git前端。

GitLab的默认管理员账户信息如下;安装后请立即登录并更改这些凭证!

root
5iveL!fe

需求

无。

角色变量

可用的变量如下所示,并附有默认值(请参见defaults/main.yml):

gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"

GitLab实例可以访问的域名和URL。这设置为gitlab.rb中的external_url配置选项,如果您希望在不同的端口上运行GitLab(除了80/443),可以在这里指定端口(例如,https://gitlab:8443/表示8443端口)。

gitlab_git_data_dir: "/var/opt/gitlab/git-data"

gitlab_git_data_dir是存储所有Git库的位置。您可以使用共享驱动器或系统上的任何路径。

gitlab_backup_path: "/var/opt/gitlab/backups"

gitlab_backup_path是存储GitLab备份的位置。

gitlab_edition: "gitlab-ce"

要安装的GitLab版本。通常是gitlab-ce(社区版)或gitlab-ee(企业版)。

gitlab_version: ''

如果您想安装特定版本,请在此设置版本(例如,Debian/Ubuntu用11.4.0-ce.0,或RedHat/CentOS用11.4.0-ce.0.el7)。

gitlab_config_template: "gitlab.rb.j2"

此角色打包的gitlab.rb.j2模板非常通用,并适用于各种用例。然而,许多人希望拥有更定制的版本,因此您可以用自己的模板覆盖此角色的默认模板,添加您需要的其他定制功能。要做到这一点:

  • 在与您的剧本相同的级别上创建一个templates目录。
  • 创建一个templates\mygitlab.rb.j2文件(只需选择与默认模板不同的名称)。
  • 设置变量为:gitlab_config_template: mygitlab.rb.j2(使用您的自定义模板名称)。

SSL配置。

gitlab_redirect_http_to_https: true
gitlab_ssl_certificate: "/etc/gitlab/ssl/{{ gitlab_domain }}.crt"
gitlab_ssl_certificate_key: "/etc/gitlab/ssl/{{ gitlab_domain }}.key"

GitLab SSL配置;告诉GitLab将普通的http请求重定向到https,以及证书和密钥的路径(如果在下面的变量中设置为true,则默认值将适用于自动生成自签名证书)。

# SSL自签名证书配置。
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"

是否为安全连接提供GitLab创建自签名证书。根据您的所在地和组织设置gitlab_self_signed_cert_subj

LetsEncrypt配置。

gitlab_letsencrypt_enable: false
gitlab_letsencrypt_contact_emails: ["[email protected]"]
gitlab_letsencrypt_auto_renew_hour: 1
gitlab_letsencrypt_auto_renew_minute: 30
gitlab_letsencrypt_auto_renew_day_of_month: "*/7"
gitlab_letsencrypt_auto_renew: true

GitLab LetsEncrypt配置;告诉GitLab是否请求和使用来自LetsEncrypt的证书,如果gitlab_letsencrypt_enable设置为true。可以在gitlab_letsencrypt_contact_emails下配置多个联系电子邮件,以列表的形式。

# LDAP配置。
gitlab_ldap_enabled: false
gitlab_ldap_host: "example.com"
gitlab_ldap_port: "389"
gitlab_ldap_uid: "sAMAccountName"
gitlab_ldap_method: "plain"
gitlab_ldap_bind_dn: "CN=Username,CN=Users,DC=example,DC=com"
gitlab_ldap_password: "password"
gitlab_ldap_base: "DC=example,DC=com"

GitLab LDAP配置;如果gitlab_ldap_enabledtrue,其余配置将告诉GitLab如何连接到LDAP服务器以进行集中认证。

gitlab_dependencies:
  - openssh-server
  - postfix
  - curl
  - openssl
  - tzdata

GitLab所需的依赖项,以支持某些功能,如时区支持或电子邮件。如果您希望安装exim而不是postfix,可以在自己的剧本中更改此列表。

gitlab_time_zone: "UTC"

GitLab时区。

gitlab_backup_keep_time: "604800"

本地备份保留多长时间(如果您不想让备份占满驱动器,这很有用!)。

gitlab_download_validate_certs: true

控制在下载GitLab安装库时是否验证证书。

# 邮件配置。
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"

GitLab系统邮件配置。默认情况下禁用;将gitlab_email_enabled设置为true以启用,并确保输入有效的发件人/回复值。

# SMTP配置
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp user"
gitlab_smtp_password: "smtp password"
gitlab_smtp_domain: "example.com"
gitlab_smtp_authentication: "login"
gitlab_smtp_enable_starttls_auto: true
gitlab_smtp_tls: false
gitlab_smtp_openssl_verify_mode: "none"
gitlab_smtp_ca_path: "/etc/ssl/certs"
gitlab_smtp_ca_file: "/etc/ssl/certs/ca-certificates.crt"

GitLab SMTP配置;如果gitlab_smtp_enabletrue,其余配置将告诉GitLab如何使用smtp服务器发送邮件。

gitlab_nginx_listen_port: 8080

如果您在反向代理后运行GitLab,可以想要将监听端口更改为其他端口。

gitlab_nginx_listen_https: false

如果您在反向代理后运行GitLab,您可能希望在另一台代理服务器或负载均衡器上终止SSL。

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

如果要启用双向SSL客户端身份验证,请设置gitlab_nginx_ssl_verify_client并在gitlab_nginx_ssl_client_certificate中添加客户端证书的路径。

gitlab_default_theme: 2

GitLab包含多种主题,您可以使用此变量设置所有用户的默认主题。请参见包含的GitLab主题以选择默认主题

gitlab_extra_settings:
  - gitlab_rails:
      - key: "trusted_proxies"
        value: "['foo', 'bar']"
      - key: "env"
        type: "plain"
        value: |
          {
          "http_proxy" => "https://my_http_proxy.company.com:3128",
          "https_proxy" => "https://my_http_proxy.company.com:3128",
          "no_proxy" => "localhost, 127.0.0.1, company.com"
          }
  - unicorn:
      - key: "worker_processes"
        value: 5
      - key: "pidfile"
        value: "/opt/gitlab/var/unicorn/unicorn.pid"

GitLab还有许多其他设置(请参见官方文档),您可以通过此特殊变量gitlab_extra_settings将它们添加,并使用keyvalue关键字进行设置。

依赖关系

无。

示例剧本

- hosts: servers
  vars_files:
    - vars/main.yml
  roles:
    - { role: geerlingguy.gitlab }

vars/main.yml

gitlab_external_url: "https://gitlab.example.com/"

许可

MIT / BSD

作者信息

此角色是由Jeff Geerling于2014年创建,他是DevOps的Ansible一书的作者。

安装
ansible-galaxy install geerlingguy.gitlab
许可证
mit
下载
527.5k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns