标签: gitlab

Gitlab CI - 通过 SSH 部署到远程服务器

我有一个使用 Gitlab CI 的 Gitlab 环境,用于一个新项目来证明编译的文件并通过 rsync 复制到生产服务器。

这些资源的构建是 exec 的机器是 docker(节点 6)的映像,但现在我必须使用 linux 将结果文件从该容器 Docker 命令复制到服务器......我的问题是通过 ssh 连接同步。

目前我有以下几点:

stages:
  - deploy

before_script:
    - npm i
    - npm run build

job_deploy:
  stage: deploy
  script:
    - ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa
    - ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts
    - ssh-copy-id -i ~/.ssh/deploy_rsa.pub $SERVER_USER@8.8.8.8
    - rsync -avuz $CI_PROJECT_DIR/dist/ $SERVER_USER@8.8.8.8:/var/wwww/example.com
  only:
    - master
Run Code Online (Sandbox Code Playgroud)

通过这个我得到:

    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that …
Run Code Online (Sandbox Code Playgroud)

ssh deployment continuous-integration gitlab

12
推荐指数
1
解决办法
3万
查看次数

如何让 GitLab 删除旧备份?

我使用 rake 任务为 GitLab 6.8.2 创建备份。

gitlab-rake gitlab:backup:create
Run Code Online (Sandbox Code Playgroud)

/etc/gitlab/gitlab.rb我添加了以下行:

gitlab_rails['backup_keep_time'] = 60
Run Code Online (Sandbox Code Playgroud)

这应该修剪超过 60 秒的备份。我的期望是,gitlab:backup:create如果 60 秒过去了,第二次运行将删除第一个备份。虽然输出中的最后一行是

删除旧备份...跳过

如何配置 GitLab 以实际删除旧备份?

backup git gitlab

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

Gitlab 无法使用 SSH 密钥

我在使用 Gitlab 时遇到问题。我使用以下指南来安装和配置 Gitlab https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md。安装似乎进行得很顺利。Web 应用程序似乎运行良好。但是我无法克隆、拉、推,基本上我基本上不能使用 Gitlab。尝试通过 SSH 进行克隆时,我看到 HTTP 和权限被拒绝的 403 错误。

我已确保在 Windows 和 OS X 上正确设置了我的私钥。我可以在服务器上看到公钥。我在 ~/.ssh.config 的配置文件中添加了以下内容

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

这是我在 /var/log/secure 中看到的

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113
Run Code Online (Sandbox Code Playgroud)

/var/log/message当我试图使用Git或ssh没作用

我不知道从这里去哪里。有什么建议?

我不知道您所说的使用 git 用户名的 SSH 是什么意思。我使用的指南没有为 git 用户创建密码,并声明该用户不能用于登录。

ssh git gitlab

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

无法访问'/root/.config/git/attributes':权限>被拒绝”

在我们的 Ubuntu 服务器中,我们能够以 Nginx 用户的身份进行克隆,/usr/share/nginx/www该用户具有www-data:www-data 所有权,但会收到警告

“警告:无法访问'/root/.config/git/attributes':权限被拒绝”

我们正在执行命令 sudo -u www-data git clone <repo>.

使用 sudo 我们会收到此警告,否则它可以正常工作。

我们能够以 root 用户身份进行克隆并且没有问题。

.gitconfig 仅位于 root 中,请查看内容:

root@geo:~# cat /root/.gitconfig
[user]
        name = pc_user
        email = pcgeopc@gmail.com
root@geo:~#
Run Code Online (Sandbox Code Playgroud)

任何人都可以请帮助我们。

我们尝试了各种选项,例如/root/.config/直接手动创建和更改权限等。但没有任何效果。任何人都可以帮我解决这个问题。

也请看这个:

root@geo:/setup/test# ll /setup/
total 16
drwxr-xr-x  4 www-data www-data 4096 Oct  9 00:14 ./
drwxr-xr-x 24 root     root     4096 Oct  9 00:14 ../
drwxr-xr-x  3 www-data www-data 4096 Oct  9 00:14 test/

root@geo:/setup/test# sudo -u www-data …
Run Code Online (Sandbox Code Playgroud)

ubuntu git gitlab

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

如何使用非捆绑的网络服务器设置 Gitlab-omnibus?

安装

  1. gitlab通过debian 7(version 7.8.1-omnibus-1_amd64.deb)上的 omnibus 包安装了该包;
  2. 按照使用非捆绑网络服务器中的描述更改设置
  3. 运行重新配置命令:(sudo gitlab-ctl reconfigure完成没有错误)。

nginx

nginx除了包可能使用以下/etc/gitlab/gitlab.rb文件创建的内容外,我没有此 gitlab 的 ' 配置:

external_url 'http://git.mydomain.fr'
web_server['external_users'] = ['www-data']
nginx['enable'] = false
ci_nginx['enable'] = false
Run Code Online (Sandbox Code Playgroud)

日志

/var/log/nginx/gitlab_error.log

2015/02/28 14:29:16 [alert] 4137#0: *14738 768 worker_connections are not enough while connecting to upstream, client: x.x.128.194, server: git.mydomain.fr, request: "GET / HTTP/1.0", upstream
: "http://x.x.128.194:80/", host: "git.mydomain.fr"
Run Code Online (Sandbox Code Playgroud)

/var/log/nginx/gitlab_access.log

在 acces.log 中,我收到了数百个关于/.

x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET …
Run Code Online (Sandbox Code Playgroud)

nginx debian-wheezy gitlab

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

Gitlab:ruby“捆绑”进程消耗极高的内存

我的 Gitlab 安装在小型 Ubuntu LTS 16.04 上运行时遇到问题。我必须指出,我对 Linux 或 Gitlab 没有太多经验。

我安装了一些个人项目(只有 4 个)的 Gitlab 运行正常,但推送速度非常慢,有时会失败。访问网络界面也非常慢。我检查了服务器并注意到使用了高达 96% 的总内存。罪魁祸首似乎是捆绑过程。

top - 00:15:30 up 59 days, 16:17,  1 user,  load average: 0.00, 0.01, 0.09
Tasks: 160 total,   1 running, 159 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.2 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 72.4/2048272  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||                           ]
KiB Swap:  0.0/0        [                                                                                                    ]

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU …
Run Code Online (Sandbox Code Playgroud)

linux ruby gitlab ubuntu-16.04

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

为来自 GitLab 网络钩子的合并请求触发 Jenkins 构建

我希望 Jenkins (1.561) 构建提交到 GitLab (6.7.5) 的合并(拉取)请求,由合并请求 Web 钩子触发。我有一个参数化构建,以及 Jenkins 插件“GitLab Merge Request Builder”(1.2.0)和“GitLab Hook”(1.0.0)。不幸的是,迁移到 Jenkins CI 并不是一个真正的选择。

只要变量、 和可用,合并请求构建器插件能够构建合并请求。当插件轮询存储库本身时,这很有效,或者我使用手动有效负载(例如)触发构建,但我无法使用钩子执行此操作。gitlabMergeRequestIdgitlabTargetBranchgitlabSourceBranchcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters

使用 GitLab Hook 插件,我能够在 JSON 有效负载中获取必要的数据,但这些值具有“错误”的键:

  • gitlabMergeRequestIdid
  • gitlabTargetBranchtarget_branch
  • gitlabSourceBranchsource_branch

我已经尝试使用 GitLab Merge Request Builder 插件的要求和变量值来配置构建参数。不幸的是(并且可能是故意的),字段中的变量没有被替换,因此 Jenkins 正在寻找具有 id和类似分支值的合并请求。NameDefault ValueDefault Value${id}

我发现无法配置从 GitLab 发送的有效负载,并且 GitLab Hook 插件和 GitLab Merge Request Builder 插件使用的参数名称都没有配置选项。

我正在考虑编写一个小的 PHP 脚本来拦截和更改来自 POST 的有效负载,然后再将其传递给 Jenkins。虽然我确信这会奏效,但它确实看起来不必要地复杂。 …

hook continuous-integration jenkins gitlab

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

在 nginx 子域上运行时 gitlab 很慢

我正在尝试在子域上运行 gitlab。我在我的虚拟服务器(运行 Ubuntu 14.04.1)上使用综合安装程序安装了最新的 gitlab 版本,并禁用了捆绑的 nginx 并使用此处发布的配置配置了未捆绑的 nginx如何在 nginx 上设置子域?

/etc/nginx/sites-availible/gitlab

upstream gitlab {
    server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}

server {
listen 80 default_server;         # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
server_name git.domain.com;     # e.g., server_name source.example.com;
server_tokens off;     # don't show the version number, a security best practice
root /home/git/gitlab/public;
client_max_body_size 500m;

# individual nginx logs for this gitlab vhost
access_log  /var/log/nginx/gitlab_access.log;
error_log   /var/log/nginx/gitlab_error.log;

location / {
  # serve static files from defined root …
Run Code Online (Sandbox Code Playgroud)

nginx subdomain gitlab

10
推荐指数
1
解决办法
2283
查看次数

在没有电子邮件的情况下在 gitlab 中创建用户?

我正在本地 VM 上测试综合 gitlab。禁用匿名注册后,我尝试通过/admin/users/new页面添加一个新用户。

它要求我将电子邮件与新用户帐户相关联,并且不允许我指定密码,而是说:

将生成重置链接并发送给用户。

用户将被迫在首次登录时设置密码。

现在,这在摘要中很好,但我不想只需要配置、强化和维护单独的邮件服务器,以便 gitlab 可以发送这些电子邮件。这台机器的用户很少,我可以手动管理他们(即如果他们忘记了密码,他们可以直接给我发电子邮件)。

有什么方法可以让我在不涉及电子邮件的情况下简单地创建帐户和分配密码?

值得一提的是,虽然我确实发现了这一点,这很好,但我仍然不想让 gmail 或 mailgun 参与其中,尽管它们很容易设置。

authentication gitlab

10
推荐指数
1
解决办法
9237
查看次数

用于 nodeJs 应用程序的没有 Docker 的 Gitlab-ci 部署?

是否可以在不使用任何 docker 镜像的情况下实现 gitlab ci 工作流?我看到的所有 gitlab runner 示例都仅基于 docker。即使用于生产部署。

如何在我现有的 linux 机器上实现 gitlab-ci 和部署过程?在生产服务器上我想部署代码运行 npm install 如果 package.json 被修改并重新启动节点实例

我想使用多个跑步者,并且每个跑步者都有 docker 图像会消耗资源。

continuous-integration gitlab

9
推荐指数
1
解决办法
6074
查看次数