之前我的一篇文章已经叙述过为什么选择了GitLab,下面来说一下GitLab在Centos6下的安装过程
一、开始之前
1)选择什么方式安装?
官方提供两种安装方式选择:
- 编译源码安装
- 官方推荐的一键安装包,提供了deb、rpm打包的一键安装包。包含了GitLab所依赖的各个软件,更多详情请查看GitLab官网https://www.gitlab.cc/downloads/
(源码安装部分软件因为GFW的原因,无法下载。所以暂时选择官方推荐的一键安装方式)
2)选择什么版本安装?
- GitLab分为社区版(GitLab Community Edition)和企业版(GitLab Enterprise Edition)。社区版免费,企业版收费,但是功能比社区版多。根据目前的需求,选择安装社区版(GitLab-CE)。
- 如果对于每个版本的异同没什么特殊要求,就不用管了,直接选择最新的 stable 版就好了(目前选择是8.17.2版本)
二、安装步骤
1)系统环境
- 服务器:本地局域网服务器
- 操作系统:Centos6 64位
2)安装过程
- 关闭selinux
# 修改vi /etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled ,然后重启电脑
# sestatus -v 查看selinux状态
- 安装配置依赖项
如想使用Postfix来发送邮件,在安装期间请选择'Internet Site'. 您也可以用sendmai或者 配置SMTP服务 并 使用SMTP发送邮件.
在 Centos 6 和 7 系统上, 下面的命令将在系统防火墙里面开放HTTP和SSH端口.
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
- 添加GitLab仓库,并安装到服务器上
curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bashsudo yum install gitlab-ce
- 如果你不习惯使用命令管道的安装方式, 你可以在这里下载 安装脚本 或者 手动下载您使用的系统相应的安装包(RPM/Deb) 然后安装
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-XXX.rpm
rpm -i gitlab-ce-XXX.rpm
- 设置smtp发送邮件服务
- Omnibus 包配置
通过修改/etc/gitlab/gitlab.rb
来设置邮件功能
- Omnibus 包配置
# 通过SMTP来发送邮件
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
# 邮箱账号
gitlab_rails['smtp_user_name'] = "xxuser@163.com"
# 邮箱密码
gitlab_rails['smtp_password'] = "xxpassword"------->注意这里填的是开启smtp的授权码,不是邮箱登录密码
# 邮箱域:这里填写163.com就好
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
##修改gitlab配置的发信人
# 第一行配置一定要和163邮箱的账户名一样否则可能发送失败
gitlab_rails['gitlab_email_from'] = "xxuser@163.com"
user["git_user_email"] = "xxuser@163.com"
- 源码包配置
源码包有现成的smtp模板来配置发送邮件功能
# 切换至gitlab安装目录
cd /home/git/gitlab
# 复制模板文件
cp config/initializers/smtp_settings.rb{.sample,}
# 修改配置文件
sudo -u git -H editor config/initializers/smtp_settings.rb
if Rails.env.production?
Gitlab::Application.config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: "smtp.163.com",
port: 25,
user_name: "j__xnt",
password: "123456",
domain: "163.com",
authentication: :plain,
enable_starttls_auto: true,
#openssl_verify_mode: 'peer' # See ActionMailer documentation for other possible options
}
end
上面方法按照你选择安装的方式来选择,最后重启GitLab
gitlab-ctl reconfigure
-
测试邮件配置是否成功
执行 gitlab-rails console进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
添加服务器开机自动启动GitLab
# 拷贝启动脚本至特定目录
cp lib/support/init.d/gitlab /etc/init.d/gitlab
# 设置开机启动
chkconfig --add gitlab
chkconfig gitlab on
# 如果你的安装目录没有按照我们的教程来,你还需要准备并修改下面这个文件
cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
# 如果你的安装目录或者用户和教程不同,修改 /etc/default/gitlab 就可以了,
# 请不要尝试修改/etc/init.d/gitlab,因为该文件在更新的时候会被更改
- 启动GitLab
sudo gitlab-ctl reconfigure
- 使用浏览器访问(服务器IP地址)GitLab
首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.
默认的管理员账号是root
,密码5iveL!fe
。如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.
三、GitLab服务构成
GitLab由以下服务构成:
-
nginx
:静态Web服务器 -
gitlab-shell
:用于处理Git命令和修改authorized keys列表 -
gitlab-workhorse:
轻量级的反向代理服务器 -
logrotate
:日志文件管理工具 -
postgresql
:数据库 -
redis
:缓存数据库 -
sidekiq
:用于在后台执行队列任务(异步执行) -
unicorn
:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
四、GitLab工作流程
** 下一篇文章会写GitLab的使用 **