关于git、gitlab、jenkins你知道多少?(三)

简介: 关于git、gitlab、jenkins你知道多少?

部署Jenkins

1. 登录jenkins

       http://192.168.1.5:8081

2. 输入密码

       复制加密密码字段,粘贴到web端。

1. [root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
2. 
3. a76f65bd63294aae93d3adf8c6bbe2a1

3. 安装插件选项

       如果弹出插件选项点击右上角“X”,进入点击开始使用就可以看到默认页面,插件将在后面本地安装(解压tar包的方式)。

4. 修改admin用户密码

       右上角→admin点击下拉三角→Configure→Password字段→修改密码→save保存,将会弹出登录页面,输入新密码登录即可。

5.复制插件包到虚拟机

       解压jenkins-plugins.tar.gz包到jenkins路径下。

1. [root@jenkins ~]# cd /media/
2. 
3. [root@jenkins media]# tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/
4. 
5. [root@jenkins media]# systemctl restart jenkins

6.关联gitlab

(1)初始配置

       创建与服务器及web站点之间的互信

       ①jenkins服务器跟web之间做互信

1. [root@jenkins ~]# ssh-keygen -t rsa
2. 
3. [root@jenkins ~]# cat /root/.ssh/id_rsa.pub

       ②jenkins服务器跟gitlab服务器做互信(双方互信)

1. [root@jenkins ~]# ssh-copy-id root@192.168.1.4
2. 
3. [root@git ~]# ssh-copy-id root@192.168.1.5

(2)点击左上角logo回到主页面→选择新项目→New Item→填写项目名→选择项目类型→Freestyle project→save保存。

(3)配置web项目→源代码管理General→git→填写存储库网址(git@192.168.1.4:dev/web.git)→报红字错误,则需要添加私钥认证→如果认证成功→save保存。

        选择web项目→左侧选择build now(点一下就行,稍等几秒)→等待构建历史出现蓝色标志→选择蓝色标志小三角下拉列表→console output→查看输出执行过程。

(4)jenkins服务器上查看/var/lib/jenkins/workspace目录,会有项目同名文件夹,保存git clone 的所有代码

自动上传

       拓扑图如下:

1. 在gitee码云上下载项目代码(gitlab服务器)

1. [root@gitlab ~]# cd /data
2. 
3. [root@gitlab data]# git clone https://gitee.com/kangjie1209/monitor.git
4. 
5. 正克隆到 'monitor'...
6. 
7. remote: Enumerating objects: 435, done.
8. 
9. remote: Total 435 (delta 0), reused 0 (delta 0), pack-reused 435
10. 
11. 接收对象中: 100% (435/435), 8.78 MiB | 2.02 MiB/s, done.
12. 
13. 处理 delta 中: 100% (54/54), done.

2. 登录gitlab,创建新的web项目,也可以直接使用之前创建的web项目。

       admin area→new project→选择dev组→项目名:web1 →create。

3. 在gitlab本地服务器上传代码到gitlab

1. [root@gitlab data]# mv monitor/* web
2. 
3. [root@gitlab data]# cd web

1. [root@gitlab web]# git add .
2. 
3. [root@gitlab web]# git commit -m "vip_1"
4. 
5. [root@gitlab web]# git push -u origin master //把代码推送上去

4. 登录jenkins,新建自由项目web。

(1)new item→ create → freestyle。

(2)configure→源代码库Source Code Management→git→gitlab路径及私钥认证→ save。

(3)build now:手动同步测试。

5. jenjins实现脚本上传网站代码

(1)打开nginx服务器,安装nginx。

1. yum -y install epel-release
2. yum -y install nginx
3. systemctl start nginx
4. systemctl stop firewalld
5. setenforce 0

(2)在jenkins上编写上传nginx的脚本

1. [root@jenkins ~]# mkdir /scripts
2. [root@jenkins ~]# vim /scripts/web.sh
3. #!/bin/sh
4. CODE_DIR=/var/lib/jenkins/workspace/web/
5. WEB_DIR=/usr/share/nginx
6. IP=192.168.1.6 //指定nginx主机
7. TIME=`date +%F-%H-%M-%S`
8. cd $CODE_DIR && tar zcf /tmp/web-${TIME}.tar.gz  ./*
9. scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIR
10. ssh root@$IP "cd $WEB_DIR && mkdir web-$TIME"
11. ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-$TIME && rm -rf web-${TIME}.tar.gz"
12. ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-$TIME html"

(3)jenkins传输公钥到nginx,执行脚本,测试查看nginx网站

1. [root@nginx ~]# ssh-keygen -t rsa
2. 
3. [root@nginx ~]# ssh-copy-id root@192.168.1.5
4. 
5. [root@jenkins ~]# ssh-copy-id root@192.168.1.6
6. 
7. [root@jenkins ~]# chmod +x /scripts/web.sh 
8. 
9. [root@jenkins ~]# sh /scripts/web.sh

(4)打开jenkins手动构建,关联脚本,自动上传

       项目web→configure → build→Execute shell→ 输入sh /scripts/web.sh→save。

       注意:如果安装jenkins后没有修改配置为root,脚本执行如果有权限问题,如已修改可直接跳过此步,解决方法如下。

(1)修改jenkins登录shell为修改jenkins登录shell为/bin/bash

1. vim /etc/passwd
2. 
3. 修改:
4. 
5. jenkins:x:990:985:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
6. 
7. 保存退出

(2)修改jenkins服务器的本地profile

1. vim /root/.bash_profile
2. 
3. 添加:
4. 
5. export PS1='[\u@\h \W]\$'
6. 
7. 保存退出
8. 
9. source /root/.bash_profile

(3)赋予jenkins用户sudo权限

1. isudo
2. 
3. 添加:
4. 
5. jenkins ALL=(ALL)       NOPASSWD: ALL
6. 
7. 保存退出

8. jenkins关联gitlab,实现自动构建上传代码

(1)jenkins:

       web项目→configure→build triggers→ 勾选最长选项→ 点击高级advanced→ 选择Filter branches by name →在include填写master→ 点击generate生成令牌→复制令牌和触发器顶部url路径→save保存。

       d4cb388a26fbd53c209f5523ac396c1b 用自己的令牌和URL路径

       http://192.168.1.5:8081/project/web

(2)gitlab:

       web项目→settings→ integrations→把复制的令牌和url粘贴过来→下拉网页点击add webhook。

(3)更新push代码,测试自动构建上传。

       修改前查看网站是下图所示

       在gitlab上,修改网站首页index.html文件并上传master。

[root@gitlab web]# vim index.html //修改43行测试

1. [root@gitlab web]# git add .
2. [root@gitlab web]# git commit -m "vip2"
3. [master b06646d] vip2
4.  1 file changed, 1 insertion(+), 1 deletion(-)
5. [root@gitlab web]# git push -u origin master
6. Counting objects: 5, done.
7. Compressing objects: 100% (3/3), done.
8. Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.
9. Total 3 (delta 2), reused 0 (delta 0)
10. To git@192.168.1.4:dev/web.git
11.    ae26759..b06646d  master -> master
12. 分支 master 设置为跟踪来自 origin 的远程分支 master。

(4)登录nginx网站,查看更新内容。

       通过下图可以看到,首页名称已自动修改成功。

       

相关文章
|
3月前
|
jenkins 应用服务中间件 持续交付
Git + Jenkins 自动化 NGINX 发布简易实现
Git + Jenkins 自动化 NGINX 发布简易实现
|
6天前
|
jenkins 持续交付 开发工具
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
6天前
|
jenkins Java 持续交付
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
3月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
133 0
|
4月前
|
存储 jenkins 持续交付
百度搜索:蓝易云【Docker+Rancher+Harbor+GitLab+Jenkins搭建CI/CD环境】
请注意,上述步骤仅为一个示例,实际搭建过程可能因环境和需求的不同而有所变化。因此,在实际操作中,请参考相应工具的官方文档和指南,以确保正确地配置和集成这些工具。
62 3
|
4月前
|
网络安全 开发工具 数据安全/隐私保护
Git - 记一次完整的新旧Gitlab迁移
Git - 记一次完整的新旧Gitlab迁移
177 0
|
5月前
|
开发工具 git
hbuilderX安装git插件→拉取线上gitlab项目
hbuilderX安装git插件→拉取线上gitlab项目
|
5月前
|
存储 Linux 网络安全
Git - Centos7下安装GitLab服务器
Git - Centos7下安装GitLab服务器
99 1
|
5月前
|
存储 jenkins 持续交付
git文件过大导致构建失败的解决方案(快速提升jenkins构建速度)
git文件过大导致构建失败的解决方案(快速提升jenkins构建速度)
67 0
|
开发工具 git 持续交付