gitlab部署、开发流程
<h2>gitlab安装服务器配置要求</h2>
<ul>
<li>建议2核CPU,4G以上内存</li>
<li>如果配置比较低,运行会比较慢</li>
</ul>
<h2>gitlab安装方式</h2>
<ul>
<li>
<p>rpm安装</p>
<pre><code class="language-shell"># 1-设置yum源
# 2-yum安装
# 3-重新加载配置:
gitlab-ctl reconfigure
# 4-查看状态
gitlab-ctl status</code></pre>
</li>
<li>
<p>docker安装(主流安装方式)</p>
<pre><code class="language-shell"># 创建目录
mkdir /opt/gitlab
# 数据持久化目录
GITLAB_HOME = /opt/gitlab
# 启动镜像
docker run --detach \
--hostname gitlab.ctnrs.com \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/log:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest</code></pre>
</li>
</ul>
<h2>运维者使用流程</h2>
<ul>
<li>创建用户</li>
<li>创建群组</li>
<li>在群组里创建项目</li>
<li>群组邀请成员</li>
</ul>
<h2>开发者使用流程</h2>
<ul>
<li>克隆版本库</li>
<li>配置使用者</li>
<li>新建开发分支</li>
<li>将本地代码推送到远程服务器</li>
<li>获取别人提交的最新代码</li>
</ul>
<h2>Gitlab 备份与恢复</h2>
<ul>
<li>
<p>手动备份</p>
<pre><code class="language-shell"># 备份数据
gitlab-rake gitlab:backup:create
# 备份配置文件
gitlab-ctl backup-etc</code></pre>
</li>
<li>
<p>自动备份</p>
<pre><code class="language-shell">crontab -l
* * * * * docker exec -it gitlab gitlab-rake gitlab:backup:create
* * * * * docker exec -it gitlab gitlab-ctl backup-etc</code></pre>
</li>
<li>
<p>策略建议</p>
<ul>
<li>本地保留7天,异地备份永久保存</li>
</ul>
</li>
</ul>
<h2>自动清理</h2>
<pre><code class="language-shell">vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800</code></pre>
<h2>数据迁移/恢复大致流程</h2>
<ul>
<li>在新服务器上安装相同版本的Gtilab</li>
<li>将备份文件发送到新服务器的相同目录下,即备份目录</li>
<li>停止数据处理服务,防止再写库</li>
<li>使用gitlab-rake恢复数据</li>
<li>手动恢复配置文件</li>
<li>访问验证</li>
</ul>
<h2>Gitlab CI/CD 介绍</h2>
<ul>
<li>
<p>持续集成(Continuous Integration,CI)</p>
<ul>
<li>代码合并、部署、自动化测试都在一起,不断地执行这个过程,并对结果反馈。</li>
</ul>
</li>
<li>
<p>持续交付(Continuous Delivery,CD)</p>
<ul>
<li>是一种软件工程方法,让软件的产出过程在一个短周期内完成,以保障软件可以稳定、持续的保持在随时可以发布的状态。</li>
<li>与持续集成相比,持续交付偏重点在于可交付的产物。</li>
</ul>
</li>
<li>
<p>持续部署(Continuous Deployment,CD)</p>
<ul>
<li>通过自动化部署的手动将软件频繁的交付,部署到期望的环境。</li>
</ul>
</li>
</ul>
<h2>使用Gitlab CI/CD分为三步</h2>
<ul>
<li>安装Runner</li>
<li>注册Runner</li>
<li>编写流水线脚本</li>
</ul>