linux-tutorial/linux/soft/gitlab-ops.html

123 lines
33 KiB
HTML
Raw Normal View History

2021-05-13 17:44:54 +08:00
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Gitlab 运维 | LINUX-TUTORIAL</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/linux-tutorial/favicon.ico">
<meta name="description" content="数据库教程">
<link rel="preload" href="/linux-tutorial/assets/css/0.styles.45d9d031.css" as="style"><link rel="preload" href="/linux-tutorial/assets/js/app.79a38eea.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/4.fb6e0f89.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/56.832958c9.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/5.cb43ecfb.js" as="script"><link rel="prefetch" href="/linux-tutorial/assets/js/10.7933187b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/11.b9b41530.js"><link rel="prefetch" href="/linux-tutorial/assets/js/12.70a5dba8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/13.857dcc43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/14.5a603a55.js"><link rel="prefetch" href="/linux-tutorial/assets/js/15.d217acb7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/16.ad565eae.js"><link rel="prefetch" href="/linux-tutorial/assets/js/17.d43e9f56.js"><link rel="prefetch" href="/linux-tutorial/assets/js/18.aa00ff43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/19.43ce44b3.js"><link rel="prefetch" href="/linux-tutorial/assets/js/20.5618e1ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/21.1c5a41d7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/22.fbe9fdf1.js"><link rel="prefetch" href="/linux-tutorial/assets/js/23.a4fb0e74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/24.e3a23b69.js"><link rel="prefetch" href="/linux-tutorial/assets/js/25.9896afe9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/26.96164082.js"><link rel="prefetch" href="/linux-tutorial/assets/js/27.391033bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/28.703f74c2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/29.02a952cb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/30.7e13628f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/31.c4652f75.js"><link rel="prefetch" href="/linux-tutorial/assets/js/32.05d2cbec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/33.3b265df8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/34.26330a03.js"><link rel="prefetch" href="/linux-tutorial/assets/js/35.417d706d.js"><link rel="prefetch" href="/linux-tutorial/assets/js/36.0ed775e0.js"><link rel="prefetch" href="/linux-tutorial/assets/js/37.34430c74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/38.87d5e0ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/39.7b648b3e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/40.3b7a219e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/41.e727eee9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/42.0134c187.js"><link rel="prefetch" href="/linux-tutorial/assets/js/43.175e982f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/44.72d90888.js"><link rel="prefetch" href="/linux-tutorial/assets/js/45.d49955bd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/46.a9c290ec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/47.cc639f04.js"><link rel="prefetch" href="/linux-tutorial/assets/js/48.98c78321.js"><link rel="prefetch" href="/linux-tutorial/assets/js/49.a7c3afed.js"><link rel="prefetch" href="/linux-tutorial/assets/js/50.22d8c542.js"><link rel="prefetch" href="/linux-tutorial/assets/js/51.28055fcd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/52.f8103df5.js"><link rel="prefetch" href="/linux-tutorial/assets/js/53.76541550.js"><link rel="prefetch" href="/linux-tutorial/assets/js/54.e78d2776.js"><link rel="prefetch" href="/linux-tutorial/assets/js/55.3ce3079c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/57.961ce896.js"><link rel="prefetch" href="/linux-tutorial/assets/js/58.6d6fbc82.js"><link rel="prefetch" href="/linux-tutorial/assets/js/59.d5e48112.js"><link rel="prefetch" href="/linux-tutorial/assets/js/6.c8f4721c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/60.7927b23b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/61.ee233f24.js"><link rel="prefetch" href="/linux-tutorial/assets/js/62.6ba50cc7.js"><link rel="prefetch" href="/l
<link rel="stylesheet" href="/linux-tutorial/assets/css/0.styles.45d9d031.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/linux-tutorial/" class="home-link router-link-active"><img src="images/dunwu-logo-100.png" alt="LINUX-TUTORIAL" class="logo"> <span class="site-name can-hide">LINUX-TUTORIAL</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link router-link-active">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link router-link-active">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Gitlab 运维</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#一、gitlab-安装" class="sidebar-link">一、gitlab 安装</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#gitlab-的普通安装" class="sidebar-link">Gitlab 的普通安装</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#gitlab-的-docker-安装" class="sidebar-link">Gitlab 的 Docker 安装</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#自签名证书" class="sidebar-link">自签名证书</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#二、gitlab-ci-multi-runner-安装" class="sidebar-link">二、gitlab-ci-multi-runner 安装</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#常规安装-gitlab-ci-multi-runner" class="sidebar-link">常规安装 gitlab-ci-multi-runner</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#docker-安装-gitlab-ci-multi-runner" class="sidebar-link">Docker 安装 gitlab-ci-multi-runner</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#三、gitlab-配置" class="sidebar-link">三、gitlab 配置</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#基本配置" class="sidebar-link">基本配置</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#创建你的-ssh-key" class="sidebar-link">创建你的 SSH key</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#创建项目" class="sidebar-link">创建项目</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#克隆项目到本地" class="sidebar-link">克隆项目到本地</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#创建-issue" class="sidebar-link">创建 Issue</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#四、gitlab-权限配置" class="sidebar-link">四、gitlab 权限配置</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#用户组的权限" class="sidebar-link">用户组的权限</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#五、备份-迁移-升级" class="sidebar-link">五、备份/迁移/升级</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#备份" class="sidebar-link">备份</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#定时自动备份" class="sidebar-link">定时自动备份</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#迁移" class="sidebar-link">迁移</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/linux/soft/gitlab-ops.html#升级" class="sidebar-link">升级</a></li></ul></li><li><a href="/linux-tutorial/linux/soft/gitlab-ops.html#参考资料" class="sidebar-link">参考资料</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__de
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
</code></pre></div><p>安装 Postfix ,使得 Gitlab 可以发送通知邮件</p> <div class="language- extra-class"><pre class="language-text"><code>sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
</code></pre></div><h4 id="添加-gitlab-yum-仓库并安装包"><a href="#添加-gitlab-yum-仓库并安装包" class="header-anchor">#</a> 添加 Gitlab yum 仓库并安装包</h4> <p>添加 Gitlab yum 仓库</p> <div class="language- extra-class"><pre class="language-text"><code>curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
</code></pre></div><p>通过 yum 安装 gitlab-ce</p> <div class="language- extra-class"><pre class="language-text"><code>sudo EXTERNAL_URL=&quot;http://gitlab.example.com&quot; yum install -y gitlab-ce
</code></pre></div><p>安装完成后,即可通过默认的 root 账户进行登录。更多细节可以参考:<a href="https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package" target="_blank" rel="noopener noreferrer">documentation for detailed instructions on installing and configuration<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="gitlab-的-docker-安装"><a href="#gitlab-的-docker-安装" class="header-anchor">#</a> Gitlab 的 Docker 安装</h3> <p>拉取镜像</p> <div class="language- extra-class"><pre class="language-text"><code>docker pull docker.io/gitlab/gitlab-ce
</code></pre></div><p>启动</p> <div class="language- extra-class"><pre class="language-text"><code>docker run -d \
--hostname gitlab.zp.io \
--publish 8443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce
</code></pre></div><p><img src="https://raw.githubusercontent.com/dunwu/images/dev/snap/20190131150515.png" alt="img"></p> <h3 id="自签名证书"><a href="#自签名证书" class="header-anchor">#</a> 自签名证书</h3> <p>首先,创建认证目录</p> <div class="language- extra-class"><pre class="language-text"><code>sudo mkdir -p /etc/gitlab/ssl
sudo chmod 700 /etc/gitlab/ssl
</code></pre></div><p>1创建 Private Key</p> <div class="language- extra-class"><pre class="language-text"><code>sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.domain.com.key 2048
</code></pre></div><p>会提示输入密码,请记住</p> <p>2生成 Certificate Request</p> <div class="language- extra-class"><pre class="language-text"><code>sudo openssl req -new -key /etc/gitlab/ssl/gitlab.domain.com.key -out /etc/gitlab/ssl/gitlab.domain.com.csr
</code></pre></div><p>根据提示,输入信息</p> <div class="language- extra-class"><pre class="language-text"><code>Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:JS
Locality Name (eg, city) [Default City]:NJ
Organization Name (eg, company) [Default Company Ltd]:xxxxx
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:gitlab.xxxx.io
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
</code></pre></div><p>3移除 Private Key 中的密码短语</p> <div class="language- extra-class"><pre class="language-text"><code>sudo cp -v /etc/gitlab/ssl/gitlab.domain.com.{key,original}
sudo openssl rsa -in /etc/gitlab/ssl/gitlab.domain.com.original -out /etc/gitlab/ssl/gitlab.domain.com.key
sudo rm -v /etc/gitlab/ssl/gitlab.domain.com.original
</code></pre></div><p>4设置文件权限</p> <div class="language- extra-class"><pre class="language-text"><code>sudo chmod 600 /etc/gitlab/ssl/gitlab.domain.com.*
</code></pre></div><h2 id="二、gitlab-ci-multi-runner-安装"><a href="#二、gitlab-ci-multi-runner-安装" class="header-anchor">#</a> 二、gitlab-ci-multi-runner 安装</h2> <blockquote><p>参考https://docs.gitlab.com/runner/install/</p></blockquote> <h3 id="常规安装-gitlab-ci-multi-runner"><a href="#常规安装-gitlab-ci-multi-runner" class="header-anchor">#</a> 常规安装 gitlab-ci-multi-runner</h3> <h4 id="下载-2"><a href="#下载-2" class="header-anchor">#</a> 下载</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
</code></pre></div><h4 id="配置执行权限"><a href="#配置执行权限" class="header-anchor">#</a> 配置执行权限</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo chmod +x /usr/local/bin/gitlab-runner
</code></pre></div><h4 id="如果想使用-docker-安装-docker-可选的"><a href="#如果想使用-docker-安装-docker-可选的" class="header-anchor">#</a> 如果想使用 Docker安装 Docker可选的</h4> <div class="language- extra-class"><pre class="language-text"><code>curl -sSL https://get.docker.com/ | sh
</code></pre></div><h4 id="创建-ci-用户"><a href="#创建-ci-用户" class="header-anchor">#</a> 创建 CI 用户</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
</code></pre></div><h4 id="安装并启动服务"><a href="#安装并启动服务" class="header-anchor">#</a> 安装并启动服务</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
</code></pre></div><h4 id="注册-runner"><a href="#注册-runner" class="header-anchor">#</a> 注册 Runner</h4> <p>1执行命令</p> <div class="language- extra-class"><pre class="language-text"><code>sudo gitlab-runner register
</code></pre></div><p>2输入 Gitlab URL 和 令牌</p> <p>URL 和令牌信息在 Gitlab 的 Runner 管理页面获取:</p> <p><img src="https://raw.githubusercontent.com/dunwu/images/dev/snap/20190129163100.png" alt="img"></p> <div class="language- extra-class"><pre class="language-text"><code>Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
Please enter the gitlab-ci token for this runner
xxx
</code></pre></div><p>3输入 Runner 的描述</p> <div class="language- extra-class"><pre class="language-text"><code> Please enter the gitlab-ci description for this runner
[hostame] my-runner
</code></pre></div><p>4输入 Runner 相关的标签</p> <div class="language- extra-class"><pre class="language-text"><code> Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
</code></pre></div><p>5输入 Runner 执行器</p> <div class="language- extra-class"><pre class="language-text"><code> Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
</code></pre></div><p>如果想选择 Docker 作为执行器,你需要指定默认镜像( <code>.gitlab-ci.yml</code> 中没有此配置)</p> <div class="language- extra-class"><pre class="language-text"><code> Please enter the Docker image (eg. ruby:2.1):
alpine:latest
</code></pre></div><h3 id="docker-安装-gitlab-ci-multi-runner"><a href="#docker-安装-gitlab-ci-multi-runner" class="header-anchor">#</a> Docker 安装 gitlab-ci-multi-runner</h3> <p>拉取镜像</p> <div class="language- extra-class"><pre class="language-text"><code>docker pull docker.io/gitlab/gitlab-runner
</code></pre></div><p>启动</p> <div class="language- extra-class"><pre class="language-text"><code>docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
</code></pre></div><h2 id="三、gitlab-配置"><a href="#三、gitlab-配置" class="header-anchor">#</a> 三、gitlab 配置</h2> <h3 id="基本配置"><a href="#基本配置" class="header-anchor">#</a> 基本配置</h3> <div class="language- extra-class"><pre class="language-text"><code>sudo vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.domain.com'
</code></pre></div><h4 id="gitlab-网站-https"><a href="#gitlab-网站-https" class="header-anchor">#</a> gitlab 网站 https</h4> <div class="language- extra-class"><pre class="language-text"><code>nginx['redirect_http_to_https'] = true
</code></pre></div><h4 id="gitlab-ci-网站-https"><a href="#gitlab-ci-网站-https" class="header-anchor">#</a> gitlab ci 网站 https</h4> <div class="language- extra-class"><pre class="language-text"><code>ci_nginx['redirect_http_to_https'] = true
</code></pre></div><h4 id="复制证书到-gitlab-目录"><a href="#复制证书到-gitlab-目录" class="header-anchor">#</a> 复制证书到 gitlab 目录:</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo cp /etc/gitlab/ssl/gitlab.domain.com.crt /etc/gitlab/trusted-certs/
</code></pre></div><h4 id="gitlab-重新配置-更新"><a href="#gitlab-重新配置-更新" class="header-anchor">#</a> gitlab 重新配置+更新:</h4> <div class="language- extra-class"><pre class="language-text"><code>sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
</code></pre></div><h3 id="创建你的-ssh-key"><a href="#创建你的-ssh-key" class="header-anchor">#</a> 创建你的 SSH key</h3> <ol><li><p>使用 Gitlab 的第一步是生成你自己的 SSH 密钥对Github 也类似)。</p></li> <li><p>登录 Gitlab</p></li> <li><p>打开 <strong>Profile settings</strong>.</p></li></ol> <p><img src="https://docs.gitlab.com/ce/gitlab-basics/img/profile_settings.png" alt="img"></p> <ol start="4"><li>跳转到 <strong>SSH keys</strong> tab 页</li></ol> <p><img src="https://docs.gitlab.com/ce/gitlab-basics/img/profile_settings_ssh_keys.png" alt="img"></p> <ol start="5"><li>黏贴你的 SSH 公钥内容到 Key 文本框</li></ol> <p><img src="https://docs.gitlab.com/ce/gitlab-basics/img/profile_settings_ssh_keys_paste_pub.png" alt="img"></p> <ol start="6"><li>为了便于识别,你可以为其命名</li></ol> <p><img src="https://docs.gitlab.com/ce/gitlab-basics/img/profile_settings_ssh_keys_title.png" alt="img"></p> <ol start="7"><li>点击 <strong>Add key</strong> 将 SSH 公钥添加到 GitLab</li></ol> <p><img src="https://docs.gitlab.com/ce/gitlab-basics/img/profile_settings_ssh_keys_single_key.png" alt="img"></p> <h3 id="创建项目"><a href="#创建项目" class="header-anchor">#</a> 创建项目</h3> <p><img src="https://raw.githubusercontent.com/dunwu/images/dev/snap/20190131150658.png" alt="img"></p> <p>输入项目信息,点击 Create project 按钮,在 Gitlab 创建项目。</p> <p><img src="https://raw.githubusercontent.com/dunwu/images/dev/snap/20190131150759.png" alt="img"></p> <h3 id="克隆项目到本地"><a href="#克隆项目到本地" class="header-anchor">#</a> 克隆项目到本地</h3> <p>可以选择 SSH 或 HTTPS 方式克隆项目到本地(推荐 SSH</p> <p>拷贝项目地址,然后在本地执行 <code>git clone &lt;url&gt;</code></p> <h3 id="创建-issue"><a href="#创建-issue" class="header-anchor">#</a> 创建 Issue</h3> <p>依次点击 <strong>Projects Dashboard</strong> &gt; <strong>Issues</strong> &gt; <strong>New Issue</strong> 可以新建 Issue</p> <p><img src="https://docs.gitlab.com/ce/user/project/issues/img/new_issue_from_tracker_list.png" alt="img"></p> <p>在项目中直接添加 issue</p> <p><img src="https://docs.gitlab.com/ce/user/project/issues/img/new_issue.png" alt="img"></p> <p>在未关闭 issue 中,点击 <strong>New Issue</strong> 添加 issue</p> <p><img src="https://docs.gitlab.com/ce/user/project/issues/img/new_issue_from_open_issue.png" alt="img"></p> <p>通过项目面板添加 issue</p> <p><img src="https://docs.gitlab.com/ce/user/project/issues/img/new_issue_from_projects_dashboard.png" alt="img"></p> <p>通过 issue 面板添加 issue</p> <p><img src="https://docs.gitlab.com/ce/user/project/issues/img/new_issue_from_issue_board.png" alt="img"></p> <h2 id="四、gitlab-权限配置"><a href="#四、gitlab-权限配置" class="header-anchor">#</a> 四、gitlab 权限配置</h2> <h3 id="用户组的权限"><a href="#用户组的权限" class="header-anchor">#</a> 用户组的权限</h3> <ul><li>用户组有这几种权限的概念:<code>Guest、Reporter、Developer、Master、Owner</code></li> <li>这个概念在设置用户组的时候会遇到,叫做:<code>Add user(s) to the group</code>,比如链接:<code>https://&lt;gitlab_host&gt;/&lt;group&gt;</code></li></ul> <table><thead><tr><th>行为</th> <th>Guest</th> <th>Reporter</th> <th>Developer</th> <th>Master</th> <th>Owner</th></tr></thead> <tbody><tr><td>浏览组</td> <td></td> <td></td> <td></td> <td></td> <td></td></tr> <tr><td>编辑组</td> <td></td> <td></td> <td></td> <td></td> <td></td></tr> <tr><td>创建项目</td> <td></td> <td></td> <td></td> <td></td> <td></td></tr> <tr><td>管理组成员</td> <td></td> <td></td> <td></td> <td></td> <td></td></tr> <tr><td>移除组</td> <td></td> <td></td> <td></td> <td></td> <td></td></tr></tbody></table> <h2 id="五、备份-迁移-升级"><a href="#五、备份-迁移-升级" class="header-anchor">#</a> 五、备份/迁移/升级</h2> <h3 id="备份"><a href="#
</code></pre></div><p>2停止相关数据连接服务</p> <div class="language-shell extra-class"><pre class="language-shell"><code>gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
</code></pre></div><p>3从备份文件中恢复 Gitlab</p> <div class="language-shell extra-class"><pre class="language-shell"><code><span class="token comment"># gitlab-rake gitlab:backup:restore BACKUP=备份文件编号</span>
gitlab-rake gitlab:backup:restore <span class="token assign-left variable">BACKUP</span><span class="token operator">=</span>1585910556_2020_04_03_11.3.0
</code></pre></div><h3 id="升级"><a href="#升级" class="header-anchor">#</a> 升级</h3> <p>升级前,一定要做好备份,记录当前 gitlab 的版本号。</p> <p>第一步还是使用官方命令进行升级。</p> <div class="language-shell extra-class"><pre class="language-shell"><code><span class="token function">sudo</span> yum <span class="token function">install</span> -y gitlab-ce
</code></pre></div><p>如果下载速度理想,就无需手动升级安装。不理想就需要<code>停止自动更新</code>,并手动下载安装包</p> <p>访问官方地址,下载对应<code>版本</code>,对应<code>系统</code>的安装包。</p> <p>注:可以根据<code>自动升级时下载的版本</code>,选择对应文件。</p> <div class="language-http extra-class"><pre class="language-http"><code><span class="token header-name keyword">https:</span>//packages.gitlab.com/gitlab/gitlab-ce
</code></pre></div><p>安装包手动上传至服务器,并<code>替换</code>下载未完成的安装包。下面是升级缓存地址:</p> <div class="language- extra-class"><pre class="language-text"><code>/var/cache/yum/x86_64/7/gitlab_gitlab-ce/packages/
</code></pre></div><p>再次执行官方升级命令即可完成自动安装。</p> <h2 id="参考资料"><a href="#参考资料" class="header-anchor">#</a> 参考资料</h2> <ul><li>官网https://about.gitlab.com/</li> <li>中文网https://www.gitlab.com.cn/</li> <li>官网下载https://about.gitlab.com/downloads/</li> <li>官网安装说明https://about.gitlab.com/installation/#centos-7</li> <li><a href="https://github.com/dunwu/OS" target="_blank" rel="noopener noreferrer">操作系统、运维部署总结系列<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/dunwu/linux-tutorial/edit/master/docs/linux/soft/gitlab-ops.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">19 minutes ago</span></div></footer> <!----> </main></div><div class="global-ui"><!----><!----></div></div>
<script src="/linux-tutorial/assets/js/app.79a38eea.js" defer></script><script src="/linux-tutorial/assets/js/4.fb6e0f89.js" defer></script><script src="/linux-tutorial/assets/js/56.832958c9.js" defer></script><script src="/linux-tutorial/assets/js/5.cb43ecfb.js" defer></script>
</body>
</html>