gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务

文章目录

  • gitlab安装及管理
    • 为什么要使用gitlab
    • gitlab的安装
    • 使用HTTP方式管理gitlab
  • 配置gitlab邮件服务
    • 配置邮箱服务的用途
    • 配置步骤
  • gitlab的账号注册及分组
    • 开启注册邮箱验证
    • 创建分组并邀请成员
    • 使用SSH方式管理gitlab
  • gitlab分支及标签的保护
  • 可能出现的问题
    • option --selinux: invalid choice: 'disable' (choose from 'enforcing', 'permissive', 'disabled'
    • curl: (6) Could not resolve host: packages.gitlab.cc; Unknown error

gitlab安装及管理

gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 (基础功能免费,高级功能收费)

为什么要使用gitlab

基础功能开源,可自行搭建可以进行权限控制,使得代码对部分人可见 gitlab使用方便,非常适合企业内部使用

gitlab的安装

1、在防火墙里开放http跟ssh端口
yum install lokkit
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第1张图片
yum install curl openssh-server openssh-clients postfix cronie -y
systemctl start postfix
systemctl enable postfix.service
lokkit -s http -s ssh

2、添加gitlab仓库,并安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第2张图片
sudo yum install gitlab-ce
在这里插入图片描述

3、启动gitlab
gitlab-ctl reconfigure
在这里插入图片描述

可以通过访问虚拟机ip地址验证:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第3张图片

根据系统提示信息,可以进入到相应文件中查看密码:
在这里插入图片描述
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第4张图片
之后可以根据提示修改密码

4、创建项目:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第5张图片

创建成功后可见项目地址不对,需要进行修改:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第6张图片

4、修改配置文件
vim /etc/gitlab/gitlab.rb:修改external_url为gitlab机子的ip+要使用的端口 ,如:http://10.24.200.10:8888gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第7张图片

找到nginx['listen_port']这条语句,改为刚刚选定的端口(8888),如nginx[‘listen_port’] = 8888:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第8张图片

5、重新配置gitlab并重启:
gitlab-ctl reconfigure
gitlab-ctl restart

6、配置防火墙:
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第9张图片

7、重启生效配置:
systemctl restart iptables.service
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第10张图片

使用HTTP方式管理gitlab

1、创建file1文件自定义内容,并初始化git:
git init
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第11张图片
在这里插入图片描述

2、本地添加到暂存区并提交:
git add *或者git add file1
git commit -m "输入提交内容"
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第12张图片

3、远程提交到gitlab的,并推送:
git remote add origin http://10.24.200.10:8888/gitlab-instance-4001b00b/testdemo.git
git push --set-upstream origin mastergit push --set-upstream origin main
在这里插入图片描述
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第13张图片

正确输入账号密码后:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第14张图片

可以看到推送成功:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第15张图片

配置gitlab邮件服务

配置邮箱服务的用途

有合并请求时,邮件通知 账号注册时,邮件验证修改密码时,通过邮件修改

配置步骤

1、开启QQ邮箱的smtp服务(不建议使用163邮箱,发几次之后,就不能发送)
设置–>账户–>smtp–>开启

2、修改gitlab配置:vim /etc/gitlab/gitlab.rb,找到下面这一串文本,进行修改::

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "kpjcsmyvttqnbdfh"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '[email protected]'

user['git_user_email'] = "[email protected]"

gitlab-ctl reconfigure重启配置

3、测试邮件服务是否正常
gitlab-rails console
Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now
在这里插入图片描述

测试发送:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第16张图片

gitlab的账号注册及分组

当其他人访问域名进行注册登录时,输入不合法的邮箱一样会注册成功,这样显然是不行的,因此可以开启注册邮箱验证:

开启注册邮箱验证

步骤:admin area -->setting–>Sign-up restrictions–>勾选Send confirmation email on sign-up
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第17张图片
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第18张图片
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第19张图片

此时再次注册,可以收到邮件,管理员批准后收到准入邮件:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第20张图片

创建分组并邀请成员

当前用户:root、zhang demo
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第21张图片

创建组:
首页->create a group

访问级别:

  • Private:只有组成员才能看到 Internal:只要登录的用户就能看到 Public:所有人都能看到
  • Guest:可以创建issue、发表评论,不能读写版本库 Reporter:可以克隆代码,不能提交
  • Developer:可以克隆代码、开发、提交、push Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目
  • Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员

使用SSH方式管理gitlab

以管理员身份运行git bash:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第22张图片
ssh-keygen -t rsa(三次回车)
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第23张图片

C:\Users\用户\.ssh下产生两个文件:id_rsa和id_rsa.pub
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第24张图片

用记事本打开id_rsa.pub文件,复制内容,在gitlab.com的网站上到ssh密钥管理页面,内容粘贴刚才复制的内容,点击add key
在这里插入图片描述
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第25张图片

现在就可以使用SSH方式了:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第26张图片
验证成功:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第27张图片

gitlab分支及标签的保护

保护特定的分支不被随便合并,以免影响相应的分支:
进入项目–>setting–> repository–>projected branches
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第28张图片
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第29张图片

注意 能push 就能merge ,相应的权限把握好(master分支设置只能masters可以合并)

例:
1、创建空文件夹,初始化git暂存区:git initgit remote add origin [项目链接]
2、拉取项目master分支内容到本地:git pull origin master
3、创建并切换到新分支dev,并拉取项目dev分支内容到本地:git pull origin dev
4、 对拉取到的内容进行修改,并添加到git暂存区后提交:git add *git commit -m "提交说明"
5、切换到master分支(默认分支),将两条分支合并:git merge dev
6、推送到远程仓库gitlab:git push(如果出现提示git push --set-upstream origin master就使用提示的语句)
7、此时会跳出登录界面,以developer身份的用户登录,之后会显示remote rejected,验证分支保护成功:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第30张图片

标签和分支用法一样–v*保护v开头的所有标签:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第31张图片

创建v1.0.1标签并推送到远程仓库gitlab,验证保护成功:
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第32张图片

可能出现的问题

option --selinux: invalid choice: ‘disable’ (choose from ‘enforcing’, ‘permissive’, ‘disabled’

执行lokkit -s http -s ssh报错:option --selinux: invalid choice: ‘disable’ (choose from ‘enforcing’, ‘permissive’, ‘disabled’)
在这里插入图片描述
解决方法:
vi /etc/selinux/config
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第33张图片
强制模式enforcing:表示所有违反安全策略的行为都将被禁止。
宽容模式permissive:表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。

根据情况自行修改。

curl: (6) Could not resolve host: packages.gitlab.cc; Unknown error

添加gitlab仓库,并安装执行curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 报错:curl: (6) Could not resolve host: packages.gitlab.cc; Unknown error
在这里插入图片描述
解决方法:
进入网址:https://packages.gitlab.com/gitlab/gitlab-ce
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第34张图片
gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第35张图片
可获得最新有效链接

gitlab部署及整合Jenkins持续构建(二)HTTP/SSH管理远程仓库gitlab、配置gitlab邮件服务_第36张图片

你可能感兴趣的:(Jenkins持续集成+Git,jenkins,gitlab,git)