Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站

 

一.Jinkens安装                                                     

下jinkens安装包

 

jenkins对接gitlab tag jenkins+gitlab_java

 

用18年的,比较稳定

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_02

 

 

安装gitlab及jinkens

 

jenkins对接gitlab tag jenkins+gitlab_运维_03

jenkins对接gitlab tag jenkins+gitlab_git_04

 

 

jenkins对接gitlab tag jenkins+gitlab_java_05

 

 

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_06

 

不要用网络源下java,网络版的Java版本较高,与jenkins不兼容。

安装完,查看端口:80是否开启,监听8080

 

jenkins对接gitlab tag jenkins+gitlab_java_07

 

修改端口:

 

jenkins对接gitlab tag jenkins+gitlab_git_08

jenkins对接gitlab tag jenkins+gitlab_Jenkins_09

 

 

重启Jenkins

 

二.网站操作                                                            

网站操作设置完成gitlab:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_10

 

再网站操作Jenkins:直接输入本机地址接端口:8081(已修改的)

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_11

 

 

复制此文件下的密钥到空白框

 

jenkins对接gitlab tag jenkins+gitlab_运维_12

 

 

接着跳转界面可能有2种:

1.第一种:如下,点击右边的模块:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_13

 

如图点击:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_14

 

 

2.第二种:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_15

 

 

2种最后都跳转到此页面:

填写信息,点击完成

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_16

 

完成点击开始:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_17

jenkins对接gitlab tag jenkins+gitlab_Jenkins_18

 

 

点击:系统管理——》插件

 

jenkins对接gitlab tag jenkins+gitlab_git_19

 

点击‘已安装’:显示插件为空

 

jenkins对接gitlab tag jenkins+gitlab_git_20

 

下载插件包,上传,并执行如下操作:

 

jenkins对接gitlab tag jenkins+gitlab_运维_21

 

ls一下会看见许多插件,重启Jenkins,再重进入Jenkins网站,会发现一堆插件:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_22

 

 

三.简单演示建立任务:                                                                  

 

jenkins对接gitlab tag jenkins+gitlab_git_23

 

 

jenkins对接gitlab tag jenkins+gitlab_git_24

jenkins对接gitlab tag jenkins+gitlab_git_25

 

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_26

 

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_27

 

 

 

编写shell命令,可查看环境变量(如‘workspace’):

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_28

jenkins对接gitlab tag jenkins+gitlab_Jenkins_29

 

 

记得保存:

 

jenkins对接gitlab tag jenkins+gitlab_java_30

 

 

jenkins对接gitlab tag jenkins+gitlab_运维_31

 

 

点击‘立即创建’,等待一会,会出现蓝色标准,、表示创建成功

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_32

 

点击蓝色圆球

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_33

 

Credentials凭证

创建凭证,如图点击:

 

jenkins对接gitlab tag jenkins+gitlab_运维_34

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_35

 

 

jenkins对接gitlab tag jenkins+gitlab_java_36

 

 

 

jenkins对接gitlab tag jenkins+gitlab_git_37

 

 

四.项目示例:                                                                     

1.建gitlab项目名称:

 

jenkins对接gitlab tag jenkins+gitlab_运维_38

jenkins对接gitlab tag jenkins+gitlab_git_39

 

 

 

jenkins对接gitlab tag jenkins+gitlab_运维_40

 

 2.yum install ansible

 

拉取远程git仓库

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_41

 

部署ansible的roles

 

jenkins对接gitlab tag jenkins+gitlab_git_42

 

编辑部署的主机群,‘inventory’是固定的,‘test’可以随便写:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_43

 

编辑tasks:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_44

jenkins对接gitlab tag jenkins+gitlab_java_45

 

 

注意:请确保server机有nginx,没有请先下载。

将要复制的文件放入模板文件下,并编辑文件:

 

jenkins对接gitlab tag jenkins+gitlab_运维_46

jenkins对接gitlab tag jenkins+gitlab_运维_47

 

 

加入变量:

jenkins对接gitlab tag jenkins+gitlab_Jenkins_48

 

 

jenkins对接gitlab tag jenkins+gitlab_java_49

 

 

编辑vars的yml文件

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_50

 

 

编辑files下文件:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_51

jenkins对接gitlab tag jenkins+gitlab_java_52

 

 

最后编辑启动文件:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_53

jenkins对接gitlab tag jenkins+gitlab_运维_54

 

 

发送密钥:

 

——#ssh key-gen

 

jenkins对接gitlab tag jenkins+gitlab_git_55

 

 

模拟执行:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_56

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_57

 

 

语法检测:

 

jenkins对接gitlab tag jenkins+gitlab_java_58

 

提交:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_59

 

可能需要认证一下:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_60

 

推送:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_61

 

 

进入网页并刷新,出现‘v1’版本:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_62

 

 

点击查看:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_63

 

 

加入Jenkins:

 

jenkins对接gitlab tag jenkins+gitlab_运维_64

 

 

jenkins对接gitlab tag jenkins+gitlab_运维_65

 

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_66

 

 

添加url地址:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_67

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_68

 

 

jenkins对接gitlab tag jenkins+gitlab_git_69

 

 

jenkins对接gitlab tag jenkins+gitlab_运维_70

 

 

构建:

 

jenkins对接gitlab tag jenkins+gitlab_java_71

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_72

 

 

出现错误不用紧张,点击查看:

jenkins对接gitlab tag jenkins+gitlab_运维_73

 

 

根据原因排错:

这里是Jenkins没有权限连接到用户主机,修改文件:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_74

jenkins对接gitlab tag jenkins+gitlab_运维_75

 

 

更改运行用户:

 

jenkins对接gitlab tag jenkins+gitlab_git_76

 

重启Jenkins:

——#systemctl restart jenkins

 

再次构建:

 

jenkins对接gitlab tag jenkins+gitlab_运维_77

 

又爆红:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_78

 

点击查看原因:

 

jenkins对接gitlab tag jenkins+gitlab_Jenkins_79

 

原因:此路径不存在,说明/var/www/html文件未创建过(一般是没有下过appach的主机),所以创建文件路径:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_80

 

再次构建:

 

jenkins对接gitlab tag jenkins+gitlab_java_81

 

 

变蓝,表示成功。

测试主机是否成功部署nginx:

 

jenkins对接gitlab tag jenkins+gitlab_java_82

 

五.可以在gitlab端远程添加web服务主机的网站信息:                                       

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_83

 

 

jenkins对接gitlab tag jenkins+gitlab_java_84

 

 

接着在Jenkins网站上立即构建,等待变蓝;再次进入服务主机nginx的网站上,查看是否添加成功。

有时候未添加成功,是因为2台机器的时间未同步,做一下时间同步:

 

jenkins对接gitlab tag jenkins+gitlab_jenkins对接gitlab tag_85