CentOS安装GitLab
一. 安装依赖/工具
- 连接身份验证工具-ssh
- 安装:
yum install -y openssh-server openssh-clients
- 启动:
systemctl start sshd
检查启动状态:systemctl status sshd
- 添加到开机自启项:
systemctl enable sshd
- 安装:
- 邮件通知工具-postfix
- 安装:
yum install -y postfix
- 开启服务:
systemctl start postfix
- 检查启动状态:
systemctl status postfix
- 添加开机自启:
systemctl enable postfix
- 安装:
- 下载工具-wget
yum install -y wget
- 防火墙-firewall
一般系统安装时,就已经自带了- 安装:
yum install -y firewalld
- 启动防火墙:
systemctl start firewalld
- 检查防火墙状态:
systemlctl status firewalld
- 将http服务添加到防火墙:
firewall-cmd --permanent --add-service=http
- 开启开机自启:
systemctl enable firewalld
- 安装:
- 下载依赖 policycoreutils
yum install -y policycoreutils policycoreutils-python
二. 下载并安装GitLab
- 打开清华大学开源镜像站GitLab-ce社区版的网站:社区
- 选择"yum",下一级目录选相对新的,这里选的是"el7",往下找一个最近的,因为版本发布的频率非常快,所以只能找比较新的版本。
右键链接复制下载链接。注意,不要下"el8"版本的,一直提示没有"policycoreutils-python-utils"依赖文件。 - 下载
当然也可以用多线程下载工具下载,然后再用FTP工具上传,因为下载速度太慢了,直接用工具了。cd /usr/local/ wget https://https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.5.4-ce.0.el7.x86_64.rpm
- 安装
安装速度还是很快的,当页面显示GitLab的LOGO的时候,表示已经成功安装。下面进入配置环节。cd /usr/local/ rpm -i gitlab-ce-13.5.4-ce.0.el7.x86_64.rpm
三. 配置
# 跳转到GitLab配置文件目录
cd /etc/gitlab/
# 用文本编辑器打开gitlab.rb
nano gitlab.rb
- 修改访问地址
找到 "external_url",如果需要支持外网访问,直接填写127.0.0.1
即可。注意初始的时候是没有"=",需要手动添加。
- 修改端口
因为GitLab默认占用8080端口,如果此端口被其他服务占用,那么就需要修改一下端口。
找到 "nginx['listen_port']",删除开头的"#",然后修改为自己需要的端口即可。
- 配置邮件服务
一般GitLab是仅限于团队内使用的工具,所以不会随便开放注册权限,这里就要用到邀请注册方式。
邀请注册是先由管理员创建新用户,然后通过邮件发送给被邀请人,被邀请人根据邮件链接设置密码然后登陆。
首先需要确认邮箱是否支持SMTP(简单邮件传输协议)功能,一般国内主流的QQ、163、新浪都支持,国外的Gmail、outlook也很多,但是不推荐用。
邮箱配置是需要在配置文件中开启并设置的,官网提供了各大主流邮件供应商的配置模板:https://docs.gitlab.com/omnibus/settings/smtp.html
在设置之前请先登陆供应商官方邮箱,检查SMTP功能是否开启,因为默认是不会开启的。这里拿163邮箱作为示范。
登陆163邮箱后,点击顶部栏的"设置"下拉列表中的"POP3/SMTP/IMAP"。
页面中如果"IMAP/SMTP服务"和"POP3/SMTP服务"有关闭的,请点击"开启",把服务都开启了。
在下面的"授权密码管理"中,点击"新增授权码",因为此码只显示一次,所以一定要保存下来。
保存下来授权密码以后,就根据GitLab官网提供的对应配置模板进入gitlab.rb中开始配置。下面还是以163邮箱示范。# 搜索"# Email Settings"或者"gitlab_rails['smtp_enable']" # 在下面添加没有被"#"注释的段落,以下为163免费邮箱示例 # 开启smtp服务 gitlab_rails['smtp_enable'] = true # 邮箱服务供应商smtp地址,一般邮箱服务供应商会提供 gitlab_rails['smtp_address'] = "smtp.163.com" # 邮箱服务供应商smtp端口 gitlab_rails['smtp_port'] = 465 # 邮件发送者邮箱名 gitlab_rails['smtp_user_name'] = "*****@163.com" # 邮件服务供应商提供给邮件发送者的授权密码 gitlab_rails['smtp_password'] = "*************" # 163邮箱smtp固定值 gitlab_rails['smtp_domain'] = "smtp.ym.163.com" # smtp请求服务类型为登陆 gitlab_rails['smtp_authentication'] = "login" # smtp通信是否使用加密连接 gitlab_rails['smtp_enable_starttls_auto'] = true # smtp通信使用TLS方式加密 gitlab_rails['smtp_tls'] = true # 邮件发送者邮箱名 gitlab_rails['gitlab_email_from'] = '*****@163.com' # 启用GitLab的email发送功能 gitlab_rails['gitlab_email_enabled'] = true # 反馈信息到邮件发送者邮箱名 gitlab_rails['gitlab_email_reply_to'] = '*****@163.com'
- 保存并重启GitLab
# 保存并关闭文本编辑器 # 重置GitLab配置 gitlab-ctl reconfigure # 重置时间略长,请耐心等待,等着显示"gitlab Reconfigured!"的时候证明重置配置成功 # 同时以后尽量不要执行这个操作,否则在其他配置文件中配置的很有可能会被覆盖 # 重启GitLab gitlab-ctl restart
- 修改防火墙
如果修改了GitLab的端口,需要在防火墙里开启端口。如果没有修改则不需要管。# 配置GitLab端口到防火墙(firewall) firewall-cmd --add-port=65101/tcp --permanent # 重启防火墙 firewall-cmd --reload # 检查以开放端口 firewall-cmd --list-all
- 测试GitLab邮件系统配置是否正确
如果返回值不是"Net::OpenTimeout (execution expired)"之类的报错,然后查看邮件发送者的已发送信箱是否有刚刚测试的邮件,就证明已经发送成功了。# 进入GitLab控制台 gitlab-rails console # 加载速度挺慢,等着展示了输入框后再继续输入 # 发送一个测试邮件,下面是语法 Notify.test_email('收件人邮箱', '邮件标题', '邮件内容').deliver_now
- 配置GitLab邮件内链接路径
如果需要GitLab往其他地方发送邮件,内部链接可能含有对GitLab的链接,域名默认是localhost,所以需要对其进行修改。
使用文本编辑器打开:nano /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
配置文件,找到"host",这里修改域名。
如果是仅限于局域网内使用,则设置为主机的IP,注意最好在路由器里将主机的IP和MAC地址进行绑定,否则重启主机IP地址可能会发生改变;如果是需要互联网访问的:有固定公网IP就填IP,如果是非固定公网IP就填写域名。
下面的"port"是端口,设置和"gitlab.rb"里面设置的端口保持一致。
如果使用的域名是https协议那么需要把"false"置为"true"。
完成编辑后保存并退出文本编辑器,重启GitLab以启用配置:gitlab-ctl restart
四. 访问并对GitLab进行设置
- 访问
使用安装GitLab的主机IP加上端口号,比如:http://127.0.0.1:65101/
初次使用需要先设置root账号的密码。 - 登陆平台管理员账号
设置完root账号初始密码后,使用账号:root 和刚刚设置的密码即可登陆。 - 设置语言
点击用户头像,选择下拉列表中的"Settings"。在最左侧菜单栏中选择"Preferences",页面最下面的"Localization"中的"Language"下拉列表中选择其他语言。点击"Save changes"然后刷新一下页面语言就切换了。
其实不太建议设置中文,因为中文翻译不是很及时导致很多没有翻译的,而且不是很能准确表达意思。
- 关闭公开注册
如果开放公开注册则会带来一定的风险,所以最好使用邀请注册这种方式。
点击顶部栏的扳手图形(Admin Area),在打开的页面左侧菜单栏中选择"Settings"-"General",然后在页面中找到"Sign-up restrictions",点击"Expand"展开伸缩框。
将"Sign-up enable"单选框的勾选去掉,点击伸缩框里最下面的"Save changes"保存配置。
下面演示一下如何使用管理员邀请注册。
还是在"Admin Area"页面里,选择"Overview"-"Users"页面,点击右上角的"New user"。
输入"Name"用户姓名、"Username"账户名和"Email"邮箱,点击页面最下端的"Create user",系统会给输入的邮箱发一封邀请注册邮件。
受邀者根据链接设置账户密码即可使用账户密码登陆。