大家好,我是Linux运维工程师 Linke 。技术过硬,很少挖坑~
本篇博客来介绍gitlab的安装
注:gitlab-ce 社区版 ;gitlab-ee是企业版,企业版是要钱的。
下面的配置文件包含了 修改ssh clone 地址为非 22 端口、配置 LDAP 登录、 禁止普通用户创建组、邮箱配置、备份配置、数据存储目录配置、禁用不需要的监控、禁用开放注册账号功能
废话不多说,下面直接走起。。。
安装gitlab服务器
做好服务器基本配置后,先到官网拿到自动安装脚本
服务器
ip | 系统 | 安装服务 |
192.168.10.185 | centos7.7 | gitlab |
修改下系统基本配置
停止firewalld 、 最大文件打开数、系统时间、swap分区、主机名等,按实际情况该处理的都做一下。好吧,非运维者可能不熟悉,老夫提供一条龙服务,请参照文档: centos7.x 初始化环境常用配置
建议单独挂载一块儿数据盘,我把数据盘挂载到了 /opt 下,另外又挂载了一块儿备份用的盘到 /data 下用于做备份使用
安装依赖
yum install -y policycoreutils openssh-server openssh-clients postfix
启动 postfix
systemctl enable postfix
systemctl start postfix
systemctl status postfix
执行自动安装脚本安装yum源
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装gitlab-ce
yum install -y gitlab-ce
等待安装完毕后,在 /opt 下会有 gitlab 目录,在 /etc/gitlab 下有 gitlab.rb ,我们不要管别的,直接撸 /etc/gitlab/gitlab.rb ,下面来改一波配置,整出一系列功能来
# 访问域名(http协议 clone 显示的域名也继承这里)
external_url 'http://gitlab008.xxxxxx.com'
# ssh 协议 clone 显示的域名从这里继承,如果ssh协议不使用22端口,那么将下面的端口配置成非 22 端口, clone 地址就会使用下面的两项配置拼接成这样的格式 ssh://git@gitlab008.gitlab008.xxxxxx.com:36566/ops/messages_sender.git
gitlab_rails['gitlab_ssh_host'] = 'gitlab008.xxxxxx.com'
# 此项默认是 22 端口,如果使用 22 端口,那么 ssh 协议的 clone 的地址是 gitlab008.xxxxxx.com@ops/messages_sender.git
gitlab_rails['gitlab_shell_ssh_port'] = 36566
gitlab_rails['gitlab_shell_git_timeout'] = 1600
# 时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 配置邮箱
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.xxxxxx.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "ops@xxxxxx.com"
gitlab_rails['smtp_password'] = "sadasdasdsad"
gitlab_rails['smtp_domain'] = "smtp.xxxxxx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'ops@xxxxxx.com'
gitlab_rails['gitlab_email_display_name'] = 'Ops-Gitlab'
# 禁止普通用户创建组
gitlab_rails['gitlab_default_can_create_group'] = false
# 配置使用 ldap 登录
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'ldap0088.xxxxxx.com'
port: 389
uid: 'uid'
bind_dn: 'cn=admin,dc=xxxxxx,dc=com'
password: 'xxxxxxxxx'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: true
smartcard_auth: false
active_directory: true
allow_username_or_email_login: true
lowercase_usernames: false
block_auto_created_users: false
base: 'dc=xxxxxxxxxxxxx,dc=com'
user_filter: ''
EOS
# 配置备份文件存储路径、权限和保留时间
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/data/backup-gitlab/"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800
# 配置数据存储路径
git_data_dirs({
"default" => {
"path" => "/opt/gitlab-data"
}
})
# 禁止不使用的监控,如果要监控这些,就不用打开注释,默认都是 true
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
初始化需要一会儿,完毕后,将会启动一大批端口和进程,执行检查命令查看各组件启动状态
gitlab-ctl reconfigure
gitlab-ctl status
等待gitlab启动后,浏览器可以访问和登录后,再到服务器上测试一下 备份命令
gitlab-rake gitlab:backup:create
检查端口全部启动后,添加hosts,浏览器打开git页面 http://gitlab008.xxxxxx.com
为默认的root用户设置密码,然后使用root用户登陆
ssh clone 配置非 22 端口的话,这里会显示下图所示的样子, 完整的地址是 ssh://git@gitlab008.its.winchannel.net:36566/ops/messages_sender.git (和默认 22 端口的地址是有区别的,直接用这个地址就可以拉代码了)
设置 gitlab 关闭开放注册用户功能
把这些 √ 都去掉
保存
退出再看登录窗口,已经没有注册功能了
至此,gitlab安装完毕。
------------------------------------------------------------------------------------------------------------------------------------------------------------------