软件包下载
配置环境
#解压
tar zxf apache-maven-xxxx.tar.gz -C /usr/local
tar zxf gradle-xxxx.tar.gz -C /usr/local
tar zxf node-xxxxx.tar.gz -C /usr/local
tar zxf apache-ant-xxxx.tar.gz -C /usr/local
#添加环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.0
export ANT_HOME=/usr/local/apache-ant-1.10.5
export GRADLE_HOME=/usr/local/gradle-5.3
export NODE_HOME=/usr/local/node-v10.15.3-linux-x64
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$GRADLE_HOME/bin:$NODE_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin
# 生效全局环境变量
source /etc/profile
构建工具集成
在这里需要强调一下,Jenkins调用这些工具的方式是通过环境变量调用。有两种方式 一种是在Jenkins系统配置中添加构建工具的环境变量,一种是直接在Jenkinsfile中定义。实现的效果没有区别,而后者更加灵活对于配置Jenkins无状态化有好处。
通过Jenkins配置
我们打开系统管理-> 全局工具配置
页面,这里就是配置我们在运行流水线过程中使用的构建工具的地方。如果没有找到maven
需要安装插件Maven Integration
才能有哦。
在这里我们通过变量名和变量值的方式定义好构建工具,变量名称不能冲突,可以大小写。关于变量的值保守点可以定义成MAVE_HOME/usr/local/apache-maven-3.6.0/
,也可以写成绝对路径/usr/local/apache-maven-3.6.0/bin/mvn
。 定义好工具之后我们如何在Jenkinsfile中使用工具呢?
在Jenkinsfile中使用: 如上图所示,我定义的maven变量名称为M3
,接下来在Jenkinsfile中使用tool
获取变量值。如下:
stage("mavenBuild"){
steps{
script{
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn clean package "
}
}
}
通过Jenkinsfile配置
在Jenkinsfile中定义其实跟我们在上面的系统中定义是一样的,我们只需要将变量名和值直接定义在文件中。然后直接调用。
stage("mavenBuild"){
steps{
script{
def mvnHome = '/usr/local/apache-maven-3.6.0'
sh "${mvnHome}/bin/mvn clean package "
}
}
}
现在你是否清楚了关于构建工具的集成呢?类似的例如您当前用的构建工具不在我的举例范围内,相信你通过这篇文章也知道了如何来进行集成了。对的没错:在系统中安装好构建工具,在jenkinsfile中定义好环境变量即可。特殊工具特殊对待哦!
发布工具安装
关于发布工具我们常用的是saltstack
和ansible
这个两个工具,这里简单说下如何集成。
安装saltstck
saltstack也是C/S架构,需要在应用服务器安装salt-minion客户端。
yum源:https://mirrors.tuna.tsinghua.edu.cn/saltstack/#rhel
#install
yum –y install salt-master salt-minion
#start
service salt-master start
service salt-minion start
#enable
chkconfig salt-master on
chkconfig salt-minion on
安装ansible
ansible不需要安装客户端,是通过SSH协议通信的。使用/etc/ansible/hosts
文件控制主机。
yum install epel-release ansbile
service ansible start
发布工具集成
stage("SlatDeploy"){
steps{
script{
//saltstack
sh " salt ${host} test.ping "
//ansible
sh " ansible -m ping ${host} "
}
}
}
关于发布工具暂且就这些了,有关发布工具的详细内容还需要各位自行在官方阅读哦。saltstack有API服务可以在jenkinsfile中封装HTTP API。
来源:oschina
链接:https://my.oschina.net/u/4072296/blog/4312147