2.代码自动上线—gitlab

2022-03-15 分类:git-jenkins 阅读(246) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长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"

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1