Jenkins+Ansible+Gitlab自动化部署三剑客(三)--Jenkins

Jenkins介绍

jenkins是一个开源持续集成工具

开发工具: JAVA

功能: 提供了软件开发的持续集成服务

特点: 支持主流软件配置管理,配合实现软件配置管理,持续集成功能

Jenkins的优势和应用场景

主流的运维开发平台,兼容所有主流开发环境

插件市场可与海量业内主流开发工具实现集成

job为配置单位与日志管理,使运维与开发人员能协同工作

权限管理划分不同job不同角色

强大的负载均衡功能,保证我们项目的可靠性

Jenkins安装配置管理

安装Jenkins前的环境准备(CentOS7)

1.添加yum仓库源

# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

#rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

2.保证系统JAVA版本为8.0或8.0以上

# yum -y install java

#java -version

3.关闭系统防火墙

# systemctl stop firewalld

# systemctl disable firewalld

4.关闭SELINUX(强制访问控制安全策略)并重启

# vi /etc/sysconfig/selinux

...

SELINUX=disabled

...

# reboot

Jenkins安装与初始化配置

1.Yum源安装Jenkins最新版本

# yum install jenkins

2.创建Jenkins系统用户

# useradd deploy

3.更改Jenkins启动用户与端口

# vi /etc/sysconfig/jenkins

...

JENKINS_USER=deploy

JENKINS_PORT=8080

...

4.启动Jenkins

# systemctl start jenkins

4.3 05:09

Jenkins job的介绍(Freestyle job 和 Pipeline job)

代表一个任务或者项目

可配置与可执行

执行后的记录称之为Build

日志监控与记录

所有文件集中保存

Freestyle job

1.需要在页面添加模块配置项与参数完成配置

2.每个Job仅能实现一个开发功能

3.无法将配置代码化,不利于job配置迁移与版本控制

4.逻辑相对简单,无需额外的学习成本

Pipeline job

匹配持续集成与持续交付的概念

1.所有模块,参数配置都可以体现为一个pipeline脚本

2.可以定义多个stage构建一个管道工作集

3.所有配置代码化,方便Job配置迁移与版本控制

4.需要pipeline脚本语法基础

Jenkins job环境准备

1.配置Jenkins server本地Gitlab DNS

2.安装git clent,curl工具依赖

3.关闭系统Git http.sslVerify安全认证

4.添加Jenkins后台Git client user 与email

Jenkins freestyle job的构建与配置

Jenkins Pipeline job的编码规范

pipeline基础架构

1.所有代码包裹在pipeline{}层内

2.stages{}层用来包含该pipeline所有stage子层

3.stage{}层用来包含具体我们需要编写任务的steps{}子层

4.steps{}层用来添加我们具体需要调用的模块语句

 agent区域

1.agent定义pipeline在哪里运行

可以使用any,none,或具体的jenkins node主机名等

例如:我们要特指在node1上执行,可以写成

agent{node {label 'node1'}}

environment区域

1."变量名称=变量值"定义我们的环境变量

2.可以定义全局环境变量,应用所有stages任务

3.可以定义stage环境变量,应用单独的stage任务

script区域(可选)

1.在steps内定义script{}

2.groovy脚本语言

3.用来进行脚本逻辑运算

常用的steps区域

echo:打印输出

sh:调用Linux系统shell命令

git url:调用git模块进行git相关操作

Jenkins Pipeline job的构建配置

Jenkins Linux shell集成和Jenkins参数集成

Jenkins Git和Maven集成

Jenkins Ansible集成

猜你喜欢

转载自www.cnblogs.com/bk770466199/p/12259029.html