1、执行简单的命令和脚本
作业配置页:
因为每次构建都会生成很多构建产物,所以如果频繁构建会占用大量空间,可以使用这些选项来控制构建产物的保留。 一般来说,建议保留最近5-10的建立。
我们稍后再谈其他参数。
保存后,创建了一个简单的自由样式作业。 单击以构建并运行,然后查看结果。
在这个小例子中,可以总结以下几点。
1、可以使用Jenkins在页面上通过linux命令行执行必要的操作;
2、如上所述,请勿在生产环境中以root用户启动jenkins。
2、设置为使用Gitlab我们还是使用以前的my-freestyle Job,设置Job从Gitlab中提取前端代码到jenkins。
这里的错误是,jenkins没有配置为连接到Gitlab。 因为jenkins只是拉动Gitlab的代码,所以可以使用Gitlab的部署密钥。
在Jenkins上单击ssh key : [ root @ node3~ ] # ssh-keygen-trsageneratingpublic/privatersakeypair.enterfileinwhichtosavethe id 3360 entersamepassphraseagain : youridentificationhasbeensavedin/root/. ssh/id _ RSA.yourpublickeyhasbeensavedin/yyyya yourpublickeyhas id _ RSA.pub.thekeyfingerprintis : sha 2563360 r4i1nwci//tr qy6 fvadzzb0V8 gmfkbwcdh/caxtkaroot @ node
然后切换到前端仓库:
安装git并在本地测试[ root @ node3~ ] # yuminstallgity [ root @ node3~ ] # gitclonegit @ 192.168.56.123360 we B- sitte can ' tbe established.ecdsakeyfingerprintissha 2563360 sjpoethyvgbi 08 vxtdzyoysqpjr5VL nbu9OBS2LX9q.ecdsakeyfingerprintismd 550 20 0233602336072:72336076336000336017336017336017336017336055.areyousureyouwanttocontinueconnnect ys warning 3360 permanently aded ' 13360 tothelistofknownhosts.remote 3360 counting objects 336034, done.remote : compressing objects :100 % (23/23 )、done.remote:total34(Delta6)、Reused18 ) Delta0) receceivivive
运行构建后,我们现在将代码拖到了作业工作区
3、在代码发行的上面的示例中,Gitlab实现为获取Jenkins的本地。 以下示例将代码实现为向服务器发布。
要在没有设置安全登录的交互式传输文件的情况下运行命令,必须首先确保Jenkins本机能够安全登录到目标主机。
[ root @ node3~ ] # ssh-copy-id-I.ssh/id _ RSA.pub 192.168.56.11/usr /爱笑的长颈鹿/ssh-copy-id : info
Source of key(s) to be installed: ".ssh/id_rsa.pub"The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established.ECDSA key fingerprint is SHA256:lHsG8JxgHwQ3/xdLN/q+h8JtvlWKhtIJn0Zw2t99gb8.ECDSA key fingerprint is MD5:cf:dd:3e:ba:5e:75:24:ce:d4:cf:4f:db:63:3d:8d:6e.Are you sure you want to continue connecting (yes/no)? yes/usr/爱笑的长颈鹿/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/爱笑的长颈鹿/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@192.168.56.11's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.56.11'"and check to make sure that only the key(s) you wanted were added.[root@node3 ~]# ssh 192.168.56.11Last login: Thu Dec 7 08:50:52 2017 from 192.168.56.1[root@node1 ~]# exitlogoutConnection to 192.168.56.11 closed. 编写发布脚本我们实现将从Git拉到的代码打包,然后发布到node1的/data/web目录下。
编辑我们的Job,在构建处输入如下代码:
构建执行成功后:
我们在Jenkins的工作区my-freestyle目录中生成web-11.tar.gz包,并且已经传送到了node1要求的目录下。
在这里我们作以下两点解释:
1、构建过程中命令执行的当前目录为:Jenkins主目录下workspace目录下Jobname目录;
2、我们可以在脚本中使用Jenkins的各种环境变量,调用方式和我们在linux中调用系统变更方式相同,我们可以使用如下方式查看Jenkins的所有环境变量:
上一节中我们介绍了如何使用Jenkins的环境变量,那么我们是不是可以在构建过程中,自定义变量,答案是肯定的,下面我们介绍Jenkins的参数化构建:
配置项目,点击参数化构建过程:
我们看到有多好种类型的参数,我们常用的choice和string。
choice给出多个选项,构建时可以手动选择参数,默认是第一行数据。
2. string Parameter:
string提供一个文本输入框,使用字符串值的参数变量。
我们添加两个参数:
然后在我们脚本中调用:
保存后,我们发现:
点击Build with parameters:
点击开始构建,查看构建结果如下:
还有很多其他的可用参数:Boolean Parameter提供一个布尔选择,password Parameter参数提供一个类似密码的输入框,Git Parameter可以选择需要签出代码的分支、标签等。
本次实验,我们新建一个freestyle Job,实现开发在本地向frontend 仓库dev 分支push 代码,Jenkins自动拉取dev分支的代码,然后进行构建后将代码发布到指定的服务器。
安装插件实现Jenkins与Gitlab的联动需要安装:Gitlab Authentication plugin、GitLab Plugin这两个插件。
配置Jenkins连接Gitlab系统管理—系统设置
我们转到GitLab上生成一个token:
我们复制生成的token,添加到jenkins:
选择刚才生成的认证
3. 新建frontend Job:
我们使用复制的方式创建新的Job,
我们发现新生成的frontend-job配置与my-freestyle一样,我们可以在此基础做改动。
源码管理部分:我们选择从dev分支拉取代码
构建触发器部分:
此选项主要配置Gitlab如何触发Jenkins Job构建,这里我们配置只有dev分支的push操作会触发构建,并生成一个token,在前面我们配置了Jenkins可以访问Gitlab,但是Gitlab并不能访问Jenkins,此的token用于配置Gitlab访问Jenkins(我们后面介绍)。
构建部分我们设置如下:
4. 配置Gitlab仓库连接Jenkins
在Gitlab中选择frontend仓库,点击settings下的Integrations:
URL与Secret Token的值来自刚才我们在Jenkins配置构建触发器部分,见下图。
完成配置后,我们进行测试,