Centos7安装gitlab
一、安装
1、登录gitlab官网,找到安装命令 https://about.gitlab.com/install/ ,这里我选择CentOS7
2、根据提示,配置必备的环境(以root用户运行)
$ yum install -y curl policycoreutils-python openssh-server
$ systemctl enable sshd
$ systemctl start sshd
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --add-service=https
$ systemctl reload firewalld
3、安装postfix以支持邮件功能
$ yum install -y postfix
$ systemctl enable postfix
$ systemctl start postfix
4、添加Gitlab镜像源,注意:官方文档上的镜像源为gitlab-ee,只能试用30天,我们需要安装的是gitlab-ce版本,因此将命令中的gitlab-ee修改为gitlab-ce即可
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
5、开始执行安装
$ sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce # 这里的url就是安装完成后你想要访问的url
6、等待安装完成,打开浏览器访问上面配置的url,设置管理员密码(默认管理员用户名为root)
至此,gitlab安装完成
二、高级配置
gitlab的配置文件路径为/etc/gitlab/gitlab.rb
1、修改默认的仓库存储目录
gitlab默认的存储路径在/var/opt/gitlab/git-data目录下,可以通过修改gitlab.rb中的git_data_dirs参数来修改目录路径
#1.创建一个新的目录
$ mkdir -p /data/git-data
#2.停止Gitlab服务
$ gitlab-ctl stop
#3.迁移数据至新的目录
$ rsync -av /var/opt/gitlab/git-data/repositories /data/git-data/ # 注意:第一个地址后面没有斜杠,第二个地址后面有斜杠
#4.修改配置文件
$ vi /etc/gitlab/gitlab.rb
git_data_dirs({
"default" => {
"path" => "/data/git-data"
}
})
#5.使配置生效并重启服务
$ gitlab-ctl reconfigure
$ gitlab-ctl start # 稍等一段时间后访问web检查服务是否正常
2、邮箱配置
$ vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 25 # 如果使用ssl,则这里是465
gitlab_rails['smtp_user_name'] = "user@example.com" # 发件用户
gitlab_rails['smtp_password'] = "password" # 密码
gitlab_rails['smtp_domain'] = "example.com" # 邮箱域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = fals
# 修改发件邮箱展示名称等
gitlab_rails['gitlab_email_from'] = 'user@example.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'noreplay@example.com'
# 使配置生效
$ gitlab-ctl reconfigure
# 测试邮件是否能正常发送
$ gitlab-rails console # 进入控制台
$ Notify.test_mail('收件人邮箱','邮件标题','邮件正文').deliver_now
3、开启Ldap认证并关闭注册功能
$ vi /etc/gitlab/gitlab.rb
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'xxx.xxx.xxx.xxx' # LDAP服务器地址
port: 389
uid: 'sAMAccountName'
bind_dn: 'cn=gitlab,dc=example,dc=com' # 用户dn
password: 'password' # 密码
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: false
smartcard_auth: false
active_directory: true
allow_username_or_email_login: true # 邮箱、用户名均可登录
lowercase_usernames: false
block_auto_created_users: true # 不允许用户注册
base: 'ou=xxx,dc=example,dc=com' # base ou
user_filter: ''
...
EOS
# 使配置生效
$ gitlab-ctl reconfigure
配置完成后,打开网页至登录页面,查看是否有LDAP登录选项。
关闭注册功能:以管理员身份登录,进入Admin Area > Settings > Sign-up restrictions, 将Sign-up enabled的勾去掉,点击保存即可
4、使用外部的PostgreSql、Redis
首先在PostgreSql中创建好用户和数据库,并配置好权限
$ vi /etc/gitlab/gitlab.rb
# 外部数据库配置
gitlab_rails['db_adapter'] = "postgresql"
gitlab_rails['db_encoding'] = "unicode"
gitlab_rails['db_collation'] = nil
gitlab_rails['db_database'] = "gitlab_production" # 数据库名称
gitlab_rails['db_username'] = "gitlab" # 数据库用户
gitlab_rails['db_password'] = "password" # Mima
gitlab_rails['db_host'] = "xx.xx.xx.xx" # 数据库地址
gitlab_rails['db_port'] = 5432
# 外部redis配置
gitlab_rails['redis_host'] = "xx.xx.xx.xx" # redis地址
gitlab_rails['redis_port'] = 6379
gitlab_rails['redis_ssl'] = false
gitlab_rails['redis_password'] = "password" # redis密码
gitlab_rails['redis_database'] = 0
gitlab_rails['redis_enable_client'] = true
# 关闭内置的postgresql
postgresql['enable'] = false
# 关闭内置的redis
redis['enable'] = false
# 使配置生效
$ gitlab-ctl stop
$ gitlab-ctl reconfigure
$ gitlab-c
5、关闭不需要的内置服务,如prometheus等
$ vi /etc/gitlab/gitlab.rb
prometheus['enable'] = false
grafana['enable'] = false
...
# 使配置生效
$ gitlab-ctl reconfigure
6、证书配置
a. 使用Let's Encrypt, 在配置文件中添加: letsencrypt['enable'] = true, reconfigure后就会自动生成证书(需要gitlab以配置域名并且公网能访问)
b. 使用已有证书: (将证书改成已有证书的地址)
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
文章转载或复制请以超链接形式并注明出处陌上小筑
发表评论