标签: gitlab

GitLab Active Directory 身份验证:无结果且无身份验证

我正在尝试使用 GitLab 设置 LDAP 身份验证(在 VM 上的 Ubuntu 14.04 amd64 上安装了 7.12.2 版,Omnibus 设置)。我已将 gitlab.rb 文件编辑为如下所示:

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
 main: # 'main' is the GitLab 'provider ID' of this LDAP server
   label: 'LDAP'
   host: '********'
   port: 389
   uid: 'sAMAccountName'
   method: 'plain' # "tls" or "ssl" or "plain"
   bind_dn: 'CN=********,OU=********,OU=********,DC=********,DC=***'
   password: '********'
   active_directory: true
   allow_username_or_email_login: false
   block_auto_created_users: false
   base: 'DC=********,DC=***'
   user_filter: ''
EOS
Run Code Online (Sandbox Code Playgroud)

这会导致可怕的“无法从 Ldapmain 授权您,因为“凭据无效”。错误。我试过,用户名(在 bind_dn 变量中):“johnsmith@example.com”(基于用户名的电子邮件)、“John …

ubuntu active-directory ldap gitlab ubuntu-14.04

8
推荐指数
1
解决办法
6616
查看次数

使用 Auto DevOps(使用 GCP Kubernetes)时如何在 GitLab 中为 CI/CD 设置环境变量?

我这里有很多活动部件,所以,我不确定出了什么问题。我这样设置我的变量:

在此处输入图片说明

但是在构建阶段,我遇到了这个失败(这是一个 Django 应用程序):

   raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
   django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

   !     Error while running '$ python manage.py collectstatic --noinput'.
   See traceback above for details.

   You may need to update application code to resolve this error.
   Or, you can disable collectstatic for this application:

   $ heroku config:set DISABLE_COLLECTSTATIC=1

   https://devcenter.heroku.com/articles/django-assets
Run Code Online (Sandbox Code Playgroud)

如果 UI 中的其他地方有我遗漏的线索,这是输出:

在此处输入图片说明

我创建了一个公共骨架应用程序来展示和调试这个问题:https : //gitlab.com/pupeno/example/-/jobs/113402553

我错过了什么将环境变量暴露给构建过程?

我复制了 Auto DevOps他们的.gitlab-ci.yml模板并添加了:

variables:
  # ...
  SECRET_KEY: $SECRET_KEY
Run Code Online (Sandbox Code Playgroud)

以及硬编码以防万一$SECRET_KEY …

django gitlab gitlab-auto-devops

8
推荐指数
1
解决办法
3146
查看次数

Gitlab 的 25 个 Sidekiq 进程

查看htop我服务器上的输出,我看到 Gitlab 产生了 25 个 sidekiq 进程。我私下使用 Gitlab,所以永远不会有任何负载,所以我怀疑所有这些过程都是必需的,但我看不到如何配置它们的数量。

在资源受限的服务器上,我真的有必要为此烦恼吗?

debian git htop gitlab

7
推荐指数
1
解决办法
7647
查看次数

GitLab 不监听 ssh 端口

我刚刚通过综合在运行 Ubuntu 14.0.4 LTS 的 VPS 上安装了 GitLab CE,对以下内容进行了更改/etc/gitlab/gitlab.rb并重新运行sudo gitlab-ctl reconfigure

gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
external_url 'https://gitlab.myserver.com/'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
web_server['external_users'] = ['www-data']
nginx['enable'] = false
Run Code Online (Sandbox Code Playgroud)

我的 Apache VirtualHost 配置正在运行,我可以访问 Web 界面https://gitlab.myserver.com/,在那里我已经添加了我的 SSH 密钥,但是当克隆/推送/etc 到或从ssh://git@gitlab.myserver.com:2222/mygroup/myproject.git我收到

ssh: connect to host gitlab.haggi.me port 2222: Connection refused
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

$ ssh -vvv -T -p 2222 …

ssh port gitlab

7
推荐指数
1
解决办法
9991
查看次数

可以在 GitLab 中将组更改为子组吗?

GitLab 的 9.0 版本带来了子组。然而,在子组成为可能之前,我们已经通过使用前缀来解决这个限制,例如

  • 福/…
  • FOO-酒吧/…
  • FOO-bax/…
  • FOO-bax-quux/…

然而,正确的成员/角色管理是一场噩梦。因此,现在新的子组可用,如果可以将现有组作为子组移动到另一个组中,那就太好了。但是,我还没有找到这样做的选项。我们可以手动创建这些子组,然后手动传输所有项目,但这似乎比应该的要复杂。

是否可以将现有组作为子组移动到另一个组中?

gitlab

7
推荐指数
1
解决办法
7187
查看次数

如何通过 LDAP 组(使用 LDAP 搜索过滤器)限制对 Gitlab 的访问?

我有一个正在运行的带有 LDAP 身份验证的 Gitlab CE 安装。现在我想根据组成员身份限制访问。

该选项user_filter似乎是可以选择的选项。但是,我似乎无法根据组成员身份允许任何人登录。

我尝试的是这个(gitlabaccess应该允许登录的组):

user_filter: '(&(objectclass=group)(samaccountname=gitlabaccess))'
Run Code Online (Sandbox Code Playgroud)

或者:

user_filter: '(memberOf=cn=gitlabaccess,DC=my,DC=domain,DC=com)'
Run Code Online (Sandbox Code Playgroud)

文件指出以下,但它也没有工作,我不知道这些数字应该是什么:

user_filter: '(memberOf:1.2.840.113556.1.4.1941:=cn=gitlabaccess,DC=my,DC=domain,DC=com)'
Run Code Online (Sandbox Code Playgroud)

特定用户的工作方式如下:

user_filter: '(&(objectclass=user)(samaccountname=jon.doe))'
Run Code Online (Sandbox Code Playgroud)

Gitlab CE 版本 9.5.5 从综合包安装。

如何根据 LDAP 组成员身份限制对 Gitlab 的访问?

ldap gitlab

7
推荐指数
1
解决办法
9741
查看次数

Docker for gitlab 中的 Docker:客户端向 https 服务器发送了 http 请求/无法删除网络

我正在尝试ta

\n

我试图在 docker 配置中为我的 gitlab 实例运行一个 docker,但我只能 \xe2\x80\x99t 让它工作。

\n

这是我想做的:

\n
    \n
  1. 在 docker\xe2\x80\x9c 镜像中启动 \xe2\x80\x9edocker
  2. \n
  3. 在另一个 docker 镜像中启动 gitlab runner
  4. \n
  5. 在 gitlab CI 的 docker 中使用 docker。
  6. \n
\n

所有这些都在 Ubuntu 18.04 下运行。这是命令

\n
    \n
  1. 创建网络

    \n

    sudo docker 网络创建 gitlab-runner-net

    \n
  2. \n
\n

在docker中启动docker:

\n
sudo docker run --privileged --name gitlab-dind -d \\\n    --network gitlab-runner-net  --network-alias gitlab-runner-net  \\\n    -e DOCKER_TLS_CERTDIR=/certs \\\n    -v docker-certs-ca:/certs/ca \\\n    -v docker-certs-client:/certs/client \\\n     -v /var/lib/docker \\\n     docker:19.03.13-dind   --storage-driver=overlay2 \n
Run Code Online (Sandbox Code Playgroud)\n …

gitlab docker

7
推荐指数
1
解决办法
2万
查看次数

Debian 8/Apache 2 虚拟主机背后的 GitLab CE 7:无法访问资产

在 Debian 8.0 上,我试图让 Apache 2.4.10 作为虚拟主机管理 GitLab CE 7.10 Omnibus 安装。

设定和目标

Apache 2 已经设置并运行了几个看起来像 vhost.example.com.

我想配置 Apache 和 GitLab,以便git.example.com由 Apache 处理以显示 GitLab Web 界面。

为此,我遵循了/sf/answers/1806681341/ 中描述的程序 。

问题

我可以访问 GitLab 的主页git.example.com,但无法访问任何其他资源,例如 CSS 或图标。Apache 日志显示四个错误,它们看起来都像:

[Sun May 10 20:24:57.146329 2015] [authz_core:error] [pid 4141] [client 1.2.3.4:80] AH01630: client denied by server configuration: /opt/gitlab/embedded/service/gitlab-rails/public/assets/application-TOKEN.css, referer: http://git.example.com/
Run Code Online (Sandbox Code Playgroud)

在网上搜索并尝试了几项更改后,我被困在这里。有谁知道如何解决这个问题?

配置文件

此外,这里是我使用的“有趣”配置文件:

/etc/apache2/sites-enabled/git.conf

<VirtualHost git.example.com:80>
    ServerAdmin admin@example.com
    DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
    ServerName git.example.com
    ServerAlias git.example.com

    ProxyPreserveHost On

    <Location …
Run Code Online (Sandbox Code Playgroud)

debian mod-proxy apache-2.2 gitlab

6
推荐指数
1
解决办法
3792
查看次数

GitLab CE 提交后自定义挂钩不起作用

我使用 GitLab 社区版 8.2 并想添加提交后挂钩。

我创建了具有权限的文件 path_to_project.git/custom_hooks/post-commit

$ ls -l1 custom_hooks/post-commit
-rwxr-xr-x 1 git git 45 Dec 14 21:31 custom_hooks/post-commit
Run Code Online (Sandbox Code Playgroud)

和内容

#!/bin/bash
echo "test custom" > /tmp/hook
Run Code Online (Sandbox Code Playgroud)

如此处所述:http : //doc.gitlab.com/ce/hooks/custom_hooks.html

但它不起作用(通过 Web 界面提交检查)。我也尝试过“正常”的 git 钩子放置(project.git/hooks/post-commit),但它也不起作用。

git hook gitlab

6
推荐指数
1
解决办法
2206
查看次数

ECDSA 密钥指纹 - 看起来是 base64 编码,但字符太少

我已经设置了一个GitLab VM,并在其上创建了一个项目。现在我正在尝试使用我的 git 客户端从另一台机器连接到它(Git for Windows v2.7.1 ...也尝试升级到最新版本 2.15.1,但没有变化)。

在 Windows 机器上,我尝试:

git push -u origin --all
The authenticity of host 'localgit.local (10.1.2.3)' can't be established.
ECDSA key fingerprint is SHA256:twmcV7LjBtI9vUsDeFEHeH0lUcBAihWtGye0K9vHCrk.
Are you sure you want to continue connecting (yes/no)? no
Run Code Online (Sandbox Code Playgroud)

我选择“否”是因为当我在虚拟机上仔细检查时,我发现了不同的指纹:

ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 7e:e4:4e:7f:47:b0:41:75:2c:45:bd:be:f5:44:77:d7 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
Run Code Online (Sandbox Code Playgroud)

好的,它是十六进制格式,所以我将其转换为 base64,对吗?

hex: 7ee44e7f47b041752c45bdbef54477d7
base64: fuROf0ewQXUsRb2+9UR31w==
Run Code Online (Sandbox Code Playgroud)

好吧,这不匹配......如果我走另一条路并将该 base64 指纹转换为十六进制并看看它是什么样子怎么办?结果我不能,它是 43 个字符,并且 base64 字符串的长度必须是 4 的倍数。

关于我在这里缺少什么的任何想法?

git ssh-keys gitlab

6
推荐指数
1
解决办法
2436
查看次数