沙漏中的沙 發表於 2022-6-29 14:13:00

ubuntu安装gitlab

<h3>须知:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。<br>版本:GitLab 分为社区版(CE) 和企业版(EE)。gitlab服务器恢复,需要版本号一致。</h3>
<p>下面以社区版为例子。</p>
<h3>一、安装依赖工具</h3>
<pre class="language-bash highlighter-hljs"><code>sudo apt install curl wget</code></pre>
<h3>二、在线安装(如果Ubuntu是官方版本,没有重新打包过系统或更换第三方内核,可以用这种)</h3>
<h4>1、添加软件仓库</h4>
<pre class="language-bash highlighter-hljs"><code>curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash</code></pre>
<h3>&nbsp;2、安装指定版本</h3>
<pre class="language-bash highlighter-hljs"><code>sudo apt-get install gitlab-ce=13.11.2-ce.0</code></pre>
<h3>三、离线安装</h3>
<p>下载地址:https://packages.gitlab.com/gitlab/gitlab-ce</p>
<p>这里选择,gitlab-ce_13.11.2-ce.0_amd64.deb。注意:不同的Ubuntu版本对应的gitlab安装包不一样</p>
<p>查看Ubuntu版本代号</p>
<pre class="language-bash highlighter-hljs"><code>lsb_release -a</code></pre>
<p>Ubuntu20.04</p>
<pre class="language-bash highlighter-hljs"><code>wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_13.11.2-ce.0_amd64.deb/download.deb</code></pre>
<p>Ubuntu18.04</p>
<pre class="language-bash highlighter-hljs"><code>wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_13.11.2-ce.0_amd64.deb/download.deb</code></pre>
<p>本地安装:</p>
<pre class="language-bash highlighter-hljs"><code>sudo dpkg -i gitlab-ce_13.11.2-ce.0_amd64.deb</code></pre>
<h3>四、修改配置文件</h3>
<pre class="language-bash highlighter-hljs"><code>sudo vim /etc/gitlab/gitlab.rb</code></pre>
<p>1、配置访问ip和端口</p>
<p><img src="https://img2022.cnblogs.com/blog/1962335/202206/1962335-20220629142918108-1908102815.png" alt="" height="127" width="619"></p>
<p>关于端口说明:</p>
<p>方法1、在external_url这里同时修改IP和端口,这里修改的url会同步显示在仓库页面的地址上。<span style="color: rgba(0, 0, 0, 1)">正确的端口很重要,即使IP这里写错了,我们也可以用实际的IP登录。</span></p>
<p>方法2、单独修改nginx代理的端口</p>
<p><strong><span style="color: rgba(224, 62, 45, 1)">如果是在docker中安装的gitlab,记得将监听的端口映射出去。</span></strong></p>
<pre class="language-bash highlighter-hljs"><code>vim /etc/gitlab/gitlab.rb

#####修改如下参数
nginx['listen_port'] = 8088   </code></pre>
<p id="1656484159702"></p>
<p>使能配置</p>
<pre class="language-bash highlighter-hljs"><code>sudo gitlab-ctl stop   #停止服务
sudo gitlab-ctl reconfigure #重新加载配置
sudo gitlab-ctl start #启动服务</code></pre>
<h3>五、默认用户名及密码</h3>
<pre class="language-bash highlighter-hljs"><code>默认用户名:root
密码:存储在/etc/gitlab/initial_root_password.(第一次加载配置24h后,将消失)</code></pre>
<p>修改root密码:</p>
<pre class="language-bash highlighter-hljs"><code>#通过命令行进入gitlab控制台
sudo gitlab-rails console

#查找用户,如果有则会返回其id,并将对象赋值给u
u = User.where(username: 'root').first

#修改密码
u.password = 'xxxxx'
u.password_confirmation = 'xxxxx'

#保存密码修改,返回true则说明修改成功,再输入exit退出控制台
u.save!</code></pre>
<h3>六、gitlab相关命令</h3>
<pre class="language-bash highlighter-hljs"><code>#查看版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION</code></pre>
<h3>七、修改仓库数据存储目录</h3>
<pre class="language-bash highlighter-hljs"><code>#1.停止gitlab,防止在移动仓库时有用户写入数据
sudo gitlab-ctl stop

#2.编辑配置文件
sudo vim /etc/gitlab/gitlab.rb
找到git_data_dirs配置项,并修改path参数
git_data_dirs({
"default" =&gt; {
    "path" =&gt; "/home/chenjian/gitlab_data"
   }
})

#3.同步目录文件
sudo rsync -av /var/opt/gitlab/git-data/repositories /home/chenjian/gitlab_data/

#4.重新加载配置
sudo gitlab-ctl reconfigure

#5.启动gitlab
sudo gitlab-ctl start</code></pre>
<h3>八、gitlab仓库备份设置</h3>
<p>进入配置参数</p>
<pre class="language-bash highlighter-hljs"><code>sudo vim /etc/gitlab/gitlab.rb

gitlab_rails[‘manage_backup_path’] = true

#gitlab默认备份目录,可以修改
gitlab_rails[‘backup_path’] = “/home/chenjian/gitlab_backups”

#生成的备份文件默认权限
gitlab_rails[‘backup_archive_permissions’] = 0644

#默认备份保留7天,秒计算
gitlab_rails[‘backup_keep_time’] = 604800</code></pre>
<p>重使能配置参数</p>
<pre class="language-bash highlighter-hljs"><code>#停止服务
sudo gitlab-ctl stop

#重新加载配置
sudo gitlab-ctl reconfigure

#开启服务
sudo gitlab-ctl start</code></pre>
<h3>九、手动备份</h3>
<pre class="language-bash highlighter-hljs"><code>#gitlab备份时需要保持运行状态,需要使用sudo权限
sudo gitlab-rake gitlab:backup:create</code></pre>
<h3>十、自动备份</h3>
<p><strong>cron机制</strong><br>cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制</p>
<p>命令行使用命令crontab -e,添加定时任务后保存:crontab -e<br>我这里设置每天凌晨两点备份文件</p>
<pre class="language-bash highlighter-hljs"><code>crontab -e</code></pre>
<p>第一次运行会让选择编译器,输入2,选择vim</p>
<p><img src="https://img2023.cnblogs.com/blog/1962335/202301/1962335-20230113140939827-1118773990.png" alt="" height="204" width="543"></p>
<p id="1673590181311"></p>
<p>如果需要重新选择其他的编辑器,可以输入</p>
<pre class="language-bash highlighter-hljs"><code>select-editor</code></pre>
<p>也可以直接编辑 /var/spool/cron/crontabs/&lt;user&gt; 文件</p>
<p>设置每天凌晨两点备份文件</p>
<pre class="language-bash highlighter-hljs"><code>0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/1962335/202301/1962335-20230113141225975-1228393989.png" alt="" height="624" width="990"></p>
<p>查看定时任务:</p>
<pre class="language-bash highlighter-hljs"><code>crontab -l</code></pre>
<p>查看cron服务状态:</p>
<pre class="language-bash highlighter-hljs"><code>systemctl status cron.service</code></pre>
<p>修改后重启cron服务:</p>
<pre class="language-bash highlighter-hljs"><code>systemctl restart cron.service</code></pre>
<h3>这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。</h3>
<p>方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件,应该会看到类似下面的信息</p>
<pre class="language-bash highlighter-hljs"><code>sudo vim /etc/crontab</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/1962335/202311/1962335-20231130161947372-1812970419.png" height="372" width="709"></p>
<pre class="language-bash highlighter-hljs"><code>0 23 * * 3 root /opt/gitlab/bin/gitlab-rake gitlab:backup:create</code></pre>
<p>要添加新的crontab,只需要在文件最后增加即可。<strong>注意这里面需要指定用户名;而方法1中则不需要</strong>,如果指定了,它会认为是命令的一部分,从而可能导致crontab执行失败。</p>
<p>如果服务器都是有root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起,一目了然。</p>
<p>重启cron服务,<span style="font-size: 12px"> <span style="color: rgba(224, 62, 45, 1); font-size: 18px">docker中用不了systemctl,所以service不会自启。<span style="font-size: 12px"><span style="color: rgba(224, 62, 45, 1); font-size: 18px">compose.yaml会默认运行<span style="font-size: 12px"><span style="color: rgba(224, 62, 45, 1); font-size: 18px">/assets/wrapper, </span></span></span></span>可以将cron重启命令加入容器内的/assets/wrapper文件中,让其附带重启cron。</span></span></p>
<pre class="language-bash highlighter-hljs"><code>&nbsp;sudo /etc/init.d/cron restart
&nbsp;# sudo systemctl restart cron.service</code></pre>
<h3>十、数据恢复</h3>
<p>1、停止相关数据连接服务<br>在gitlab服务器上停止相关数据连接服务,命令如下:<br>停止gitlab数据服务</p>
<pre class="language-bash highlighter-hljs"><code>sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq</code></pre>
<p>2、恢复数据</p>
<pre class="language-bash highlighter-hljs"><code>#1.恢复数据
sudo gitlab-rake gitlab:backup:restore BACKUP=文件编号
#文件名为1678252199_2023_03_08_13.11.2_gitlab_backup.tar,则编号就是除去_gitlab_backup.tar的部分
#编号:1678252199_2023_03_08_13.11.2

#2.将老gitlab.rb、gitlab-secrets.json 复制到新/etc/gitlab 目录下</code></pre>
<p>3、重启gitlab</p>
<pre class="language-cmake highlighter-hljs"><code>#重新加载配置
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start</code></pre>
<h3>十一、数据迁移(以迁移到docker中为例)</h3>
<p>1、下载指定版本镜像</p>
<pre class="language-bash highlighter-hljs"><code>docker pull gitlab/gitlab-ce:13.11.2-ce.0</code></pre>
<p>&nbsp;2、创建容器</p>
<pre class="language-bash highlighter-hljs"><code>docker run -d \
--hostname gitlab.xxx.com \
--name gitlab \
--restart always \
-p 8082:443 -p 8083:80 -p 8084:22 \
-v /usr/local/gitlab_data/gitlab/config:/etc/gitlab \
-v /usr/local/gitlab_data/gitlab/logs:/var/log/gitlab \
-v /usr/local/gitlab_data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce</code></pre>
<p>3、初始可能没有配置文件,直接运行,遇见问题见链接</p>
<pre class="language-bash highlighter-hljs"><code>gitlab-ctl reconfigure</code></pre>
<p>https://blog.csdn.net/zhangweixbl4/article/details/135139274</p><br><br>
来源:https://www.cnblogs.com/chenjian688/p/16423193.html
頁: [1]
查看完整版本: ubuntu安装gitlab