五、gitlab+Jenkins+nginx实现自动化
1.1 Jenkins安装Gitlab所需插件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4Msbpkb-1689159048209)(E:\教学资料\※笔记※\复习\assets\image-20230710212112.png)]](https://i-blog.csdnimg.cn/blog_migrate/57ee7f2a9c74d8b052298a3813a04d7b.png)
1.2 Jenkins创建freestyle项目
1.2.1 创建自由风格的项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aqBN1FZM-1689159048210)(E:\教学资料\※笔记※\复习\assets\image-20230710105535461.png)]](https://i-blog.csdnimg.cn/blog_migrate/6c2acae3d780aab0387f02a25a9f19c9.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9fYCshu-1689159048211)(E:\教学资料\※笔记※\复习\assets\image-20230710105550365.png)]](https://i-blog.csdnimg.cn/blog_migrate/db6ccf074ee21e9444ce9b6d783bc2bb.png)
1.2.2 配置源码管理
报错:
无法连接仓库。需要配置ssh密钥到gitlab中的用户上。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WQdreU7j-1689159048211)(E:\教学资料\※笔记※\复习\assets\image-20230710110202241.png)]](https://i-blog.csdnimg.cn/blog_migrate/b4c33d9aaf9d4d1a12ff5af07bbcae83.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cGN149lI-1689159048212)(E:\教学资料\※笔记※\复习\assets\image-20230710110214909.png)]](https://i-blog.csdnimg.cn/blog_migrate/aa7cf5394166b9a8cae629c884e1445f.png)
1.2.3 gitlab创建Jenkins用户
1、创建Jenkins用户
2、Jenkins服务配置git
[root@jenkins ~]
[root@jenkins ~]
[root@jenkins ~]
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzPmI4IsT8vTQBY3jiW7f/K8g0CtMQBvsTg/MLbA4LK/yDioOBMcchUlJ56aYliYUDbwGivgbMFZKgH+PjWgwbj5g/MqQFhnK450OeDtREMRJHzMImTsWNPQ8n2i18zGOPlQduS9ah6dndJM75G7ZYtj0M99TBnjDJD9llcQXf72Wvgy1R86bIOpJw4ukz0IKB9hrNiRHRu9iN4ccngYuW61DiDR22e0+AfRylNUXCPIRBROfKO75tGCoDlzLn8oFTehoHFCeH9IIHhGG8o7ZpGFq0KNTKyeCPXORw2ldfWD4/BW78Ifwe8QWXPe0v4y7XrWuzJ0m5zPlP+r2iFw09 root@jenkins
3、验证Jenkins是否可以通过ssh拉取代码
[root@jenkins webhp]
[root@jenkins webhp]
[root@jenkins ~]
Cloning into 'webhp'...
The authenticity of host '192.168.222.133 (192.168.222.133)' can't be established.
ECDSA key fingerprint is SHA256:FwhcfCp+J2+nTXfRbDcXruRsxJSKRAAbb7v9zdjARPc.
ECDSA key fingerprint is MD5:6c:75:bf:77:e7:8c:d6:aa:14:90:0e:3d:15:f2:17:04.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.222.133' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 22 (delta 3), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (22/22), 355.19 KiB | 0 bytes/s, done.
Resolving deltas: 100% (3/3), done.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hq5H53Fv-1689159048212)(E:\教学资料\※笔记※\复习\assets\image-20230710110722869.png)]](https://i-blog.csdnimg.cn/blog_migrate/adf96a14376be9f86d06ef4777ed058e.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPnUprQE-1689159048213)(E:\教学资料\※笔记※\复习\assets\image-20230710111215743.png)]](https://i-blog.csdnimg.cn/blog_migrate/2b4f0ce3bce555cad79b44daa358647c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ndZ6j4N1-1689159048214)(E:\教学资料\※笔记※\复习\assets\image-20230710111516596.png)]](https://i-blog.csdnimg.cn/blog_migrate/30a6737ba88085cf59706946a223561b.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0aUHTWOR-1689159048215)(E:\教学资料\※笔记※\复习\assets\image-20230710111632517.png)]](https://i-blog.csdnimg.cn/blog_migrate/3ba1d0961f69145ccead727fa2ed2961.png)
1.2.4 配置私钥为Jenkins的凭据
1、修改Jenkins的启动用户为root
[root@jenkins ~]
JENKINS_USER="root"
[root@jenkins ~]
User=root
Group=root
[root@jenkins ~]
[root@jenkins ~]
[root@jenkins ~]
root 2593 1 59 20:16 ? 00:00:18 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080
2、jenkins服务器和gitlab服务器做免密
[root@jenkins workspace]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FsiJf21y-1689159048215)(E:\教学资料\※笔记※\复习\assets\image-20230710113323630.png)]](https://i-blog.csdnimg.cn/blog_migrate/36a169d5dac0ce7e954024e990053a2e.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vW8sT6yA-1689159048215)(E:\教学资料\※笔记※\复习\assets\image-20230710113427505.png)]](https://i-blog.csdnimg.cn/blog_migrate/2c87ca5776ff0e2f7497b26357d39db1.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0sCB5VC-1689159048216)(E:\教学资料\※笔记※\复习\assets\image-20230710113536853.png)]](https://i-blog.csdnimg.cn/blog_migrate/f5be67cd7a6b380e9672cb8d0ae864d4.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bh6FmSqn-1689159048216)(E:\教学资料\※笔记※\复习\assets\image-20230710114039630.png)]](https://i-blog.csdnimg.cn/blog_migrate/4c141fd9cd2d20c68f32def0d3041c71.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2l1ZckeE-1689159048217)(E:\教学资料\※笔记※\复习\assets\image-20230710121206686.png)]](https://i-blog.csdnimg.cn/blog_migrate/5d88a86037cf239c41ee81b2bce96640.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AFcwtN5H-1689159048217)(E:\教学资料\※笔记※\复习\assets\image-20230710125505840.png)]](https://i-blog.csdnimg.cn/blog_migrate/a7551278b7c7e9ed1f6de1240b84719a.png)
1.3 测试Jenkins拉取线上代码
1、构建触发器
2、构建环境
3、构建
4、构建后的操作
5、开始构建
[root@jenkins workspace]
/var/lib/jenkins/workspace
[root@jenkins workspace]
webhp-gitlab项目 webhp-gitlab项目@tmp
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qHOxvhua-1689159048217)(E:\教学资料\※笔记※\复习\assets\image-20230710125617619.png)]](https://i-blog.csdnimg.cn/blog_migrate/131ed3bf2abcab40717c7ee6413cf402.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9856Bq2Z-1689159048217)(E:\教学资料\※笔记※\复习\assets\image-20230710163213346.png)]](https://i-blog.csdnimg.cn/blog_migrate/5d20b0574b960f7d9d756c789cdca83c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wmFogeFK-1689159048218)(E:\教学资料\※笔记※\复习\assets\image-20230710125915336.png)]](https://i-blog.csdnimg.cn/blog_migrate/32eea6e0ac96ed7928804dced0f36704.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kcUISI3n-1689159048218)(E:\教学资料\※笔记※\复习\assets\image-20230710130429530.png)]](https://i-blog.csdnimg.cn/blog_migrate/aaf29004e941c62f7a3918e2163d5d96.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcQeaymy-1689159048219)(E:\教学资料\※笔记※\复习\assets\image-20230710163435810.png)]](https://i-blog.csdnimg.cn/blog_migrate/b54a70af6f896cb4fd2374b0feab526f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uEYnUdNj-1689159048219)(E:\教学资料\※笔记※\复习\assets\image-20230710130705577.png)]](https://i-blog.csdnimg.cn/blog_migrate/00b6931ce99babb91414ad479e4e3e09.png)
1.4 webhp项目自动发布
1.4.1 配置发布脚本
1、jenkins主机和nginx主机配置免密
2、编写shell脚本
[root@jenkins ~]
[root@jenkins shell]
DATE=$(date +%Y-%m-%d_%H:%M)
webhp_dir="/root/webhp"
web_host="192.168.222.133"
WORKSPACE="/var/lib/jenkins/workspace"
get_code(){
find $WORKSPACE -name "*tmp" | xargs rm -rf
tar -zcf /opt/webhp-${DATE}.tar.gz -C $WORKSPACE .
}
copy_code(){
scp -r /opt/webhp-${DATE}.tar.gz root@${web_host}:/opt
ssh root@${web_host} "tar -xf /opt/webhp-${DATE}.tar.gz -C /opt && \
ls -l /opt && \
cp -rf ${webhp_dir} ${webhp_dir}.bak && \
rm -rf ${webhp_dir} && \
mv /opt/webhp-gitlab项目-线上发布 ${webhp_dir} "
}
deploy(){
get_code
copy_code
}
deploy
1.4.2 修改代码并上线
1、index.html
<h1 style="color: blue; text-align: center; width: 1500px; background-color:cornsilk; height: 50px;">强强科技集团-v1.5版本</h1>
2、Jenkins配置
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5qZcHti-1689159048219)(E:\教学资料\※笔记※\复习\assets\image-20230710171358519.png)]](https://i-blog.csdnimg.cn/blog_migrate/3bf9fe2e24520d61b0accb39bddb8b3f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6bsdTJoj-1689159048220)(E:\教学资料\※笔记※\复习\assets\image-20230710174745727.png)]](https://i-blog.csdnimg.cn/blog_migrate/19ed492f54581c7b8627b326392a7681.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WNZJRSDU-1689159048220)(E:\教学资料\※笔记※\复习\assets\image-20230710181341445.png)]](https://i-blog.csdnimg.cn/blog_migrate/2b27e548e68171208f557f83990b9730.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rPQn9ITR-1689159048221)(E:\教学资料\※笔记※\复习\assets\image-20230710181402371.png)]](https://i-blog.csdnimg.cn/blog_migrate/2e7a0cb8cf28c841c2173d8ddae9f96e.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uybjCHFA-1689159048222)(E:\教学资料\※笔记※\复习\assets\image-20230710181445376.png)]](https://i-blog.csdnimg.cn/blog_migrate/054dd23e7060a17b7df8c70cb7f3ddb2.png)