Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码

如果按照前面的安装方法,Jenkins 和 Git 应该已经可以用WEB打开了,下面我们来介绍怎么配置,怎么使用。本分前半部分我们先用Jenkins配和Git实现定时构建检测代码并将代码分发到生产环境的服务器。

Maven + Neuxs 我们后续再继续更新ing......先来实现基本功能。

 

注:如果你的环境和下面“准备环境”中不一样,请参考前面的文章,准备好环境再来看本文。

准备环境安装地址汇总:https://blog.csdn.net/weixin_37973929/article/details/84028708(安装所有环境的地址在此URL的最下面)

 

准备环境:

系统:Cent OS 7

jenkins:IP地址:8080 (Web页面已经可以打开)

Git:IP地址:80 (Web页面已经可以打开)

------------------------------------------------Jenkins-----------------------------------------------------

我们先来看 jenkins 的配置

创建账户:

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第1张图片

 

直接跳过

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第2张图片

 

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第3张图片

 

到达首页

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第4张图片

安装插件:

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第5张图片

 

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第6张图片

 

安装页面最下面勾选自动重启选项

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第7张图片

 

Jenkins 我们就先做到这里,下面我们开始Git的配置安装。

 

 

-----------------------------------------------Git-------------------------------------------------------------

我们先来看Git 的配置

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第8张图片

到达登录页面,我们以刚才的root账户登录。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第9张图片

至此,jenkins和git的准备操作都已完成。继续往下走。

 

----------------------Jenkins 配合 git 定期检测代码,并发送至生产机器----------------------

首先,我们再jenkins的机器上 生成 Key,如果你的机器已经有key。可直接跳到第二步。

一、检查SSH-KEY是否已经生成过。

ls -al ~/.ssh

二、生成新的SSH-KEY(在当前用户目录下,我的是root)

ssh-keygen -t rsa -C "[email protected]"

三、生成成功

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:liJa5msRT4uS8v4S1UZwvbU/SSTT8wrA6nm9PLxpS68 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    ...o   .     |
|     .. + + +    |
|     o . + = o   |
|    o = ..o . .  |
|   o+B.oS. + o   |
|. +=o.=o. . =    |
| o.o.. . o.. .   |
|  o ..   .*o     |
| ..+o    .E=.    |
+----[SHA256]-----+

四、查看生成成功的KEY

ls /root/.ssh/

id_rsa :私钥

id_rsa.pud:公钥

五、将id_rsa.pub的内容添加到GitLab。按照下面截图操作

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第10张图片

进入页面之后 填写jenkins的公钥

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第11张图片

 

接下来创建一个项目组。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第12张图片

填写项目组信息

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第13张图片

在项目组中创建 新的项目。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第14张图片

填写项目信息。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第15张图片

创建一个测试文件,内容随便写。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第16张图片

 

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第17张图片

接下来,我们测试一下是否可以在jenkins上拉取该文件。

1、我们在root目录下创建一个code,并进入到code目录。

mkdir /root/code
cd /root/code

2、执行命令:

注:git clone git@Git服务器IP地址:项目组名称/项目名称


git clone [email protected]:test-git/my-one-test-projecty-.git

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第18张图片

我们进去看看是不是已经拉取下来了。

接下来开始实现将代码发送到生产服务器。

准备一台虚拟机当做生产机器。

我准备的机器IP是:192.168.73.171 下面简称“生产机”

在生产机自定义一个路径,然后创建一个文件夹。我在/root下创建了一个/data文件夹来模拟生产环境中的生产目录。

然后我们打开jenkins创建一个新的任务。

点击“新建任务”。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第19张图片

起一个名字,选择自由风格。点击确定。

来到下一个页面。(该页面内容较多,多个截图展示。)

截图一:这个截图中不用做任何修改。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第20张图片

截图二:在源码管理中 选择“Git”

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第21张图片

添加凭证:中间的Enter directly中,写的是Jenkins的机器私钥!!!后面不要有空格。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第22张图片

截图三:选择root账号。点击保存。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第23张图片

接下来我们回到首页,就看到了刚才创建的任务。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第24张图片

点击名称进入项目,向下拉。会看到“构建”这个选项。打开下拉菜单,我们选择shell。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第25张图片

开始进行测试,这里我们可以写两条命令。下面截图中 "testfile” 是你要同步的文件名称,"data"是生产环境的目录。

 

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第26张图片

 

tree命令:打印目录结构。一般系统没有tree命令可以使用:yum 来安装

安装tree命令:yum install -y tree







命令一:tree



scp命令:发送到某服务器。

命令二:scp -r test root@生产服务器IP:/data/

这些都配置好之后,我们回到jenkins机器,用jenkins账号生成一对密钥,用于对生产机器做访问。

1、在jenkins机器上 切换到jenkins

su -s /bin/bash jenkins

2、执行生成密钥命令

ssh-keygen -t rsa -C "[email protected]"

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第27张图片

执行下面的命令,将jenkins的账号公钥发送到生产服务器。

ssh-copy-id  root@生产服务器IP

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第28张图片

没有登陆上去,不要紧。其实已经成功了。

我们来到jenkins的任务页面,点击立即构建。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第29张图片

这个时候我们去生产服务器的目录下就可以看到文件已经同步了。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第30张图片

 

接下来我们来实现定是检测,如果有改动,我们就将内容同步到生产服务器。

我们找到“构建触发器”,选择“定是构建”。我写的“ * * * * * ”表示每分钟检测一次。截止到这一步,我们就实现了 定是检测代码,并分发到生产服务器。

Linux运维•持续集成自动化(五)- Jenkins + Git实现定时检测,并同步代码_第31张图片

 

你可能感兴趣的:(#,持续集成)