最近在学习 Jenkins,需要使用到 gitlab,所以记录下gitlab安装过程。
GitLab一个开源的git仓库管理平台,方便团队协作开发、管理。在GitLab上可以实现完整的CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本 ,地址。
服务器信息
软件
使用 vim /etc/yum.repos.d/gitlab-ce.repo 命令,输入以下内容
- [gitlab-ce]
- name=Gitlab CE Repository
- baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
- gpgcheck=0
- enabled=1
- # 重新yum编译仓库缓存
- $ sudo yum makecache
-
- # 建立元数据缓存
- $ sudo yum install gitlab-ce
- # 安装基础依赖
- $ sudo yum -y install policycoreutils openssh-server openssh-clients postfix
-
- # 启动ssh服务&设置为开机启动
- $ sudo systemctl enable sshd & sudo systemctl start sshd
Postfix 是一个邮件服务器,GitLab 发送邮件需要用到
- # 安装 postfix
- $ sudo yum install -y postfix
-
- # 启动 postfix 并设置为开机启动
- $ sudo systemctl enable postfix & sudo systemctl start postfix
- # 开放ssh、http服务
- $ sudo firewall-cmd --add-service=ssh --permanent & sudo firewall-cmd --add-service=http --permanent
-
- # 重载防火墙规则
- $ sudo firewall-cmd --reload
本次我们部署的是社区版: gitlab-ce ,如果要部署商业版可以把关键字替换为:gitlab-ee
- $ wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
- $ rpm -i gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
安装成功后会看到gitlab-ce打印了以下图形
GitLab默认的配置文件路径是 /etc/gitlab/gitlab.rb
默认的站点Url配置项是:external_url 'http://gitlab.example.com
这里我将GitLab站点Url修改为 http://127.0.0.1:8000 也可以用域名代替 IP,这里根据自己需求来即可
- # 修改配置文件
- $ sudo vi /etc/gitlab/gitlab.rb
-
- # 配置首页地址(大约在第15行)
- $ external_url 'http://127.0.0.1:8000'
-
- # 开放端口号
- $ firewall-cmd --zone=public --add-port=8000/tcp --permanent
- # 重启防火墙
- $ systemctl restart firewalld
- # 查看是否成功
- $ firewall-cmd --zone=public --query-port=8000/tcp
- # 重新配置并启动
- $ sudo gitlab-ctl reconfigure
-
- # 完成后将会看到如下输出
- Running handlers:
- Running handlers complete
- Chef Infra Client finished, 10/776 resources updated in 45 seconds
- gitlab Reconfigured!
- # 启动 gitlab
- $ gitlab-ctl restart
- # 查看启动详细信息
- $ systemctl status gitlab-runsvdir.service
将设置的域名DNS解析到服务器IP,或者修改本地host将域名指向服务器IP。访问:http://192.168.0.10:8000/users/sign_in
进入首页,随后进行登录,管理员账号默认用户名是root。
初始化密码可以在 GitLab初始化文件查看
- $ cat /etc/gitlab/initial_root_password
- # 复制Password后面的内容即可
- Password: E+EA7WZie9zJbMQ2gwISeVN/We9DBZmYsMFpbjzhYcc=
登录进来进入首页:
配置邮箱可以让GitLab在发生相应事件的时候进行邮件通知
比如:找回密码、添加邮箱等
- # 修改配置文件
- $ sudo vi /etc/gitlab/gitlab.rb
-
- # 邮件配置
- gitlab_rails['smtp_enable'] = true
- gitlab_rails['smtp_address'] = 'smtp.163.com'
- gitlab_rails['smtp_port'] = 465
- gitlab_rails['smtp_user_name'] = 'yourmail@163.com'
- gitlab_rails['smtp_password'] = 'yourpasswd'
- gitlab_rails['smtp_domain'] = 'smtp.163.com'
- gitlab_rails['smtp_authentication'] = 'login'
- gitlab_rails['smtp_enable_starttls_auto'] = true
- gitlab_rails['smtp_tls'] = true
- gitlab_rails['gitlab_email_enabled'] = true
- gitlab_rails['gitlab_email_from'] = 'yourmail@163.com'
- gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
-
- # 保存后,重新配置并启动GitLab
- $ sudo gitlab-ctl reconfigure
GitLab默认所有的注册用户都可以创建组。但对于团队来说,通常只会给Leader相关权限。
虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置GitLab默认禁用创建组权限。
- # 修改配置文件
- $ sudo vi /etc/gitlab/gitlab.rb
-
- # 开启gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为false
- ### GitLab user privileges
- $ gitlab_rails['gitlab_default_can_create_group'] = false
-
- # 保存后,重新配置并启动GitLab
- $ sudo gitlab-ctl reconfigure
命令 | 说明 |
---|---|
check-config | 检查在gitlab中是否有任何配置。在指定版本中删除的rb |
deploy-page | 安装部署页面 |
diff-config | 将用户配置与包可用配置进行比较 |
remove-accounts | 删除所有用户和组 |
upgrade | 升级 |
service-list | 查看所有服务 |
once | 如果GitLab服务停止了就启动服务,如果已启动就不做任何操作 |
restart | 重启GitLab服务 |
start | 如果GitLab服务停止了就启动服务,如果已启动就重启服务 |
stop | 停止GitLab服务 |
status | 查看GitLab服务状态 |
reconfigure | reconfigure重新配置GitLab并启动 |