2023-05-09
linux
00
请注意,本文编写于 619 天前,最后修改于 577 天前,其中某些信息可能已经过时。

目录

Git
一、gitlab部署
1、下载gitlab安装包.rpm
2、安装gitlab
3、登录
4、配置邮箱报警
5、创建群组
6、创建一个账号
7、创建一个新项目
8、配置免密克隆
9、gitlab部署完成
二、jenkins部署
1、安装JDK
2、安装jenkins
3、进入jenkins
4、创建用户
5、安装相关插件
6、配置jenkins免密拉取gitlab
7、将私钥上传到jenkins
8、在jenkins上创建项目
9、测试发布到web
10、配置jenkins自动部署
11、推送失败解决方案
12、网页测试

实验环境为局域网内

主机

主机名/ip
jenkins192.168.2.40
gitlab192.168.2.50

Git

一、gitlab部署

可以从清华源下载相应版本

shell
`rpm包下载地址 # https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ `我这里选择的是12.0版本的,这是下载地址 #https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm

1、下载gitlab安装包.rpm

shell
`安装依赖 [root@gitlab ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python `安装命令 要保证centos主机有网,并且有配置yum源 [root@gitlab ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm --no-check-certificate

2、安装gitlab

shell
`rpm包安装命令比较简单 [root@gitlab ~]# rpm -ivh gitlab-ce-12.0.0-ce.0.el7.x86_64.rpm `出现下面这个狐狸图像表示安装成功

image-20220708234033720

shell
`修改配置文件` [root@gitlab ~]# sed -i "/^external_url/cexternal_url 'http://192.168.1.1'" /etc/gitlab/gitlab.rb `重置gitlab,过程比较慢` [root@gitlab gitlab]# gitlab-ctl reconfigure `重置完之后会默认启动几个服务,这些都是gitlab必须的服务,包里面自带,如果重置没有成功的话,查看一下自己端口有没有被占用,尽量还是在新环境下部署gitlab`

image-20220708234727848

gitlab启动成功

image-20220708234929951

设置新的管理员密码

image-20220708235058678

3、登录

image-20220708235211682

在这里插入图片描述

注意:在 GitLab 中配置的中文并不是全部都是中文,你们可以安装中文插件,我这边使用的是谷歌浏览器转换。

4、配置邮箱报警

shell
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb # 在第 57 行后添加以下内容 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' # SMTP 服务器 gitlab_rails['smtp_port'] = 465 # SMTP 服务器端口号 gitlab_rails['smtp_user_name'] = '2261665821@qq.com' # 邮件账号 gitlab_rails['smtp_password'] = '保密' # 邮件授权码 gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '2261665821@qq.com'
shell
`重置gitlab` [root@gitlab ~]# gitlab-ctl reconfigure

登录控制台发送测试邮件

shell
[root@gitlab ~]# gitlab-rails console irb(main):001:0> Notify.test_email('接收人的邮箱@qq.com','Test','Hello ZhangYan').deliver_now

image-20220709000417884

image-20220709000430532

image-20220709000606366

5、创建群组

image-20220709000643354

创建一个群组 ,设置为内部群组

image-20220709000915087

6、创建一个账号

image-20220709001030436

设置账户名和邮箱,使用权设置为root,密码需要用户收到邮件后自己设置

image-20220709001135955

点进去设置密码
image-20220709001319596

设置新密码
image-20220709001405473

将两个用户都添加到刚刚创建的test_grup群组中
image-20220709001828092

7、创建一个新项目

创建一个新项目,使用的是刚刚创建的zhangyan用户
image-20220709001944691

需要选择的只有下面这两项
image-20220709002131776

创建成功了之后,创建一个新文件
image-20220709002252134

写上文件名,写一些内容,点击完成
image-20220709002425302

8、配置免密克隆

shell
`生成秘钥` [root@gitlab ~]# ssh-keygen `查看秘钥并复制秘钥内容` [root@gitlab ~]# cat /root/.ssh/id_rsa.pub

image-20220709002953896

验证(克隆过程中不需要输入密码即可)

shell
[root@gitlab ~]# git clone git@192.168.2.50:zhangyan/web-zhangyan [root@gitlab ~]# ls anaconda-ks.cfg web-zhangyan [root@gitlab ~]# `如果输入命令显示git命令找不到,直接yum -y install git就可以安装`

9、gitlab部署完成

二、jenkins部署

教程

1、安装JDK

shell
`因为jenkins是需要在java上运行的,所以要安装java [root@jenkins ~]# ls anaconda-ks.cfg jdk-8u171-linux-x64.tar.gz `解压缩` [root@jenkins ~]# tar -xf jdk-8u171-linux-x64.tar.gz -C /usr/local/ [root@jenkins ~]# ls /usr/local/ bin etc games include jdk1.8.0_171 lib lib64 libexec sbin share src `编写环境变量` [root@jenkins ~]# cat /etc/profile.d/java.sh JAVA_HOME=/usr/local/jdk1.8.0_171/ PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH `生效环境变量` [root@jenkins ~]# source /etc/profile.d/java.sh `查看版本,无问题` [root@jenkins ~]# java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

2、安装jenkins

shell
`我这里下载的jenkins也是从清华源网站下载的` [root@jenkins ~]# ls /usr/bin/wget || yum -y install wget && wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.331-1.1.noarch.rpm --no-check-certificate `安装包下载好了` [root@jenkins ~]# ls anaconda-ks.cfg jdk-8u171-linux-x64.tar.gz jenkins-2.332.3-1.1.noarch.rpm `安装依赖` [root@jenkins ~]# yum install java-1.8.0-openjdk* -y [root@jenkins ~]# yum -y install jenkins-2.332.3-1.1.noarch.rpm `安装完成` `修改配置文件` [root@Jenkins ~]# sed -i '/^JENKINS_USER/cJENKINS_USER="root"' /etc/sysconfig/jenkins

jenkins启动报错解决方案

jenkins启动时卡在启动界面解决方案 把/var/lib/jenkins/hudson.model.UpdateCenter.xml文件里的默认地址改为 http://mirror.xmission.com/jenkins/updates/update-center.json

3、进入jenkins

image-20220709013520196

image-20220709013649482

4、创建用户

这里忘记截图了,从网上找了一张,这一步的截图

在这里插入图片描述

进入jenkins

image-20220709155000841

5、安装相关插件

shell
Credentials # 签名证书管理插件 Gitlab # 安装后从 GitLab 获取代码 Git 和 Git Client # 用于 Jenkins 在 GitLab 中拉取源码 GitLab Hook # GitLab 触发 Jenkins 构建项目 Gitlab Authentication # GitLab 和 Jenkins 认证插件 SSH Plugin # 进程执行 Shell 脚本 Publish Over SSH # 用于通过 SSH 部署应用

6、配置jenkins免密拉取gitlab

shell
`生成秘钥` [root@jenkins jenkins]# ssh-keygen `查看` [root@jenkins jenkins]# cat /root/.ssh/id_rsa.pub

image-20220709160429747

7、将私钥上传到jenkins

image-20220709160651547

shell
`查看私钥` [root@jenkins jenkins]# cat /root/.ssh/id_rsa

image-20220709160912934

8、在jenkins上创建项目

image-20220709161040575

image-20220709161617828

image-20220709161642251

测试构建无问题

image-20220709162101784

9、测试发布到web

**大概意思就是在gitlab上修改内容,通过jenkins重新构建到web的工作目录 **

shell
`安装httpd服务` [root@jenkins ~]# yum -y install httpd `写个脚本` [root@jenkins ~]# cat web.sh #!/bin/bash scp /var/lib/jenkins/workspace/web/* root@192.168.2.30:/var/www/html/ `配置免密,使scp的时候免密拷贝` [root@jenkins ~]# ssh-copy-id 192.168.2.30 #最后运行脚本测试是否能够免密拷贝

image-20220709163405285

image-20220709163509962

测试构建成功

image-20220709163551593

拷贝也成功了

image-20220709163623476

10、配置jenkins自动部署

shell
`安装插件 Gitlab Hook Plugin Build Authorization Token Root Build Token Trigger
shell
`配置身份令牌 [root@jenkins ~]# openssl rand -hex 12 44ede7a7f0d497cf6521b2ff # -hex 输出结果为 16 进制数据,数字 12 是指定生成的随机字符为 12 字节,即 24 个 16 进制个数。

构建触发器

image-20220709163950103

image-20220709164422726

image-20220709164901367

image-20220709171412895

推送测试
image-20220709171438775

image-20220709171451098

11、推送失败解决方案

测试推送失败的话,可以到jenkins端配置下面这些
image-20220709171207801

点进去往下拉找到 Enable authentication for '/project' end-point
image-20220709171306036

如果再不行的话 就把匿名用户可读权限勾选上
image-20220709171601152

12、网页测试

现在是这样的网页
image-20220709171851099

我在gitlab上进行修改
image-20220709171924747

这时候jenkins会出现一个正在构建的队列
image-20220709171959604

再次刷新网页 网页已经变化了
image-20220709172031418

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:ZYW

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 ™ 许可协议。转载请注明出处!