Centos7安装Gitlab
下载安装包
# 清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm --no-check-certificate
安装相关组件
yum install systemd curl policycoreutils-python openssh-server -y
安装Postfix
yum install -y postfix
修改配置
vim /etc/postfix/main.cf
...
inet_interfaces = all
inet_protocols = ipv4
...
运行Postfix
systemctl enable postfix
systemctl start postfix
关闭防火墙和selinux
systemctl stop firewalld
# 临时关闭
setenforce 0
安装gitlab-ce
rpm -ivh gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
修改配置文件
vim /etc/gitlab/gitlab.rb
...
# 修改访问URL
external_url 'http://10.4.7.200:8181'
...
# 修改时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 邮箱相关
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@163.com" # 邮箱号
gitlab_rails['smtp_password'] = "*************" # 授权码
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_from'] = 'xxx@163.com' # 邮箱号
测试邮件
[root@master ~]# gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
GitLab: 14.4.2 (1ce86e92f81) FOSS
GitLab Shell: 13.21.1
PostgreSQL: 12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4.1)
irb(main):001:0> Notify.test_email('xxx@163.com','邮件标题','邮件内容').deliver_now
...
...
irb(main):002:0> exit
重置Gitlab配置
(可理解为初始化吧)
gitlab-ctl reconfigure
启动Gitlab
gitlab-ctl start
安装结束...稍等一会访问URL
一定要注意本地端口是否被占用!导致访问Web页一直502
登陆Gitlab
# 账号root
# 密码
cat /etc/gitlab/initial_root_password
常用命令
gitlab-ctl start:启动全部服务
gitlab-ctl restart:重启全部服务
gitlab-ctl stop:停止全部服务
gitlab-ctl reconfigure:使配置文件生效(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要执行此命令)
gitlab-ctl show-config :验证配置文件
gitlab-ctl uninstall:删除gitlab(保留数据)
gitlab-ctl cleanse:删除所有数据,从新开始
gitlab-ctl tail 查看服务的日志
Gitlab常用组件
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表,我们的gitlab是以Git做为最层的,你操作实际上最后就是调用gitlab-shell命令进行处理。
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的
Gitlab目录解释
/var/opt/gitlab/git-data/repositories:库默认存储目录
/opt/gitlab: 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录
卸载Gitlab
# 停止服务
gitlab-ctl stop
# 卸载gitlab
rpm -e gitlab-ce
# 强杀守护进程
ps -ef|grep gitlab|grep runsvdir|awk -F ' ' '{print $2}'|xargs kill -9
# 删除gitlab相关文件
find / -name *gitlab* | xargs rm -rf