2.代码自动上线—gitlab
孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。
1.gitlab安装部署
1.安装依赖
[root@gitlab ~]# yum install -y curl openssh-server postfix wget
2.安装Gitlab组件
[root@gitlab ~]# yum install -y https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
3.修改gitlab配置文件
[root@git ~]# grep -E "^[a-Z]" /etc/gitlab/gitlab.rb
external_url 'http://gitlab.sfy.com'###gitlab访问的url
gitlab_rails['gitlab_email_enabled'] = true###邮箱,开启
gitlab_rails['gitlab_email_from'] = '2195802440@qq.com'###发件邮箱
gitlab_rails['gitlab_email_display_name'] = 'GitLib_通知'###发件邮箱名
gitlab_rails['smtp_enable'] = true###邮箱配置
gitlab_rails['smtp_address'] = "smtp.qq.com"###发件邮箱地址
gitlab_rails['smtp_port'] = 465###发件邮箱端口
gitlab_rails['smtp_user_name'] = 2195802440@qq.com###发件邮箱名
gitlab_rails['smtp_password'] = "upcrzqig"###发件邮箱密码(授权码)
gitlab_rails['smtp_domain'] = "qq.com"###发件主机
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
prometheus['enable'] = false###关闭不需要的组件
prometheus['monitor_kubernetes'] = false###关闭不需要的组件
alertmanager['enable'] = false###关闭不需要的组件
node_exporter['enable'] = false###关闭不需要的组件
redis_exporter['enable'] = false###关闭不需要的组件
postgres_exporter['enable'] = false###关闭不需要的组件
gitlab_monitor['enable'] = false###关闭不需要的组件
prometheus_monitoring['enable'] = false###关闭不需要的组件
grafana['enable'] = false###关闭不需要的组件
4. 初始化操作
gitlab-ctl reconfigure##修改配置文件后需要执行
gitlab- ctl status##查看状态
gitlab- ctl stop##关闭
gitlab- ctl start##开启
5.登录
登录的时候需要修改密码,初始账号为root
6. 汉化
###下载汉化包
[root@gitlab ~]# wget https://gitlab.com/xhang/gitlab/-/archive/12-0-stable-zh/gitlab-12-0-stable-zh.tar.gz
[root@gitlab ~]# tar xf gitlab-12-0-stable-zh.tar.gz
[root@gitlab ~]# cat gitlab-12-0-stable-zh/VERSION #查看汉化版本是否与gitlab版本一致 12.0.3
[root@gitlab ~]# rpm -qa |grep gitlab
###停止gitlab,进行中文汉化
[root@gitlab ~]# gitlab-ctl stop
#中文版覆盖英文版
[root@gitlab ~]# \cp -r gitlab-12-0-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
###重启gitlab,验证汉化结果
#重启配置gitlab服务
[root@gitlab ~]# gitlab-ctl reconfigure
#重启gitlab服务
[root@gitlab ~]# gitlab-ctl restart
##再次登录提示502,稍等一会再刷新即可
登录之后发现仅仅是部分汉化成功,需要在web页面再次配置
点击右上角头像,点击settings

点击Preferences(偏好)将语言替换为简体中文,保存设置后刷新页面,汉化成功

2.Gitlab用户与组
案例1:验证项目是不是隶属于该组的成员才可以看见
1.首先创建dev、ops两个组 2.然后基于组创建两个项目项目 3.最后创建用户、为用户分配组、以及组中的权限


分别为组创建不同的项目

##创建用户,并将其加入对应的组,登录用户,用户只能看到组内的项目
案例2∶验证主程序员和开发者身份的权限
1. 主程序员︰能够对master、 dev分支进行操作﹔[通过命令测试]。
2. 测试普通开发者︰仅能对非master 分支进行操作 [通过命令演示效果]
3.gitlab的备份与恢复
1.gitlab备份
###编辑配置文件
gitlab_rails['manage_backup_path'] = true #是否可以指定备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份目录
gitlab_rails['backup_archive_permissions'] = 0644 #备份的压缩包权限
gitlab_rails['backup_keep_time'] = 604800 #备份保留多久 7天
2.手动执行备份
[root@git ~]# gitlab-rake gitlab:backup:create
##对于gitlab.rb 和gitlab-secrets.json包含敏感信息,需要手动备份.
[root@git ~]# ll /var/opt/gitlab/backups
total 200
-rw------- 1 git git 204800 Aug 2 19:32 1627903944_2021_08_02_12.0.3_gitlab_backup.tar
3.自动备份
自动备份就是写个定时任务
4.备份恢复
1.停止数据写入服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2.通过命令进行恢复,恢复时需要指定此前备份的名称。(但不需要写名称的后缀.tar)
gitlab-rake gitlab:backup:restore BACKUP=1627903944_2021_08_02_12.0.3
3.重启gitlab查看是否恢复成功
4.迁移与升级
###升级前建议做好备份,避免出现问题
需要遵循以下升级步骤以确保主版本升级成功:
1.升级至之前主要版本的最新次要版本。
2.升级到目标主要版本的第一个次要版本(X.0.Z)。
3.继续升级到较新的版本。
##升级直接下载rpm包升级即可
##迁移直接在新机器上安装完服务,然后将旧机器备份的文件导进去就行
5.gitlab的https配置
###修改如下配置
external_url 'https://gitlab.sfy.com'
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/opt/5681989_www.buyao007.icu.pem"
nginx['ssl_certificate_key'] = "/opt/5681989_www.buyao007.icu.key"
未经允许不得转载:孙某某的运维之路 » 2.代码自动上线—gitlab
评论已关闭