jenkins的几种安装方式
pipeline、jenkinsfile
官方文档
jenkins安装
- 更多可参看官方文档jenkins安装
war包安装
- 下载最新的 lts 版本 Jenkins WAR包,下载地址。或者在服务器上使用
wget <jenkins_war_link>
来下载到指定目录下即可
$ wget https://get.jenkins.io/war-stable/2.332.1/jenkins.war --no-check-certificate
$ java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
- 运行命令
java -jar jenkins.war --httpPort=8081
(8081为jenkins服务启动的端口号) - 浏览器访问jenkins服务地址
http://<ip>:8081
浏览器上无法访问,可尝试关闭服务器防火墙
systemctl disable firewalld.service
(永久)
systemctl stop firewalld.service
(暂时,重启后失效)
部署到tomcat中
- 部署tomcat服务器
$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.zip --no-check-certificate
$ unzip apache-tomcat-10.0.18.zip
前提:已经配置好了java运行环境
- 将jenlins.war复制到
$tomcat_home/webapp/
下
$ cd apache-tomcat-10.0.18
$ cd webapps
$ cp ../../jenkins.war .
如果端口冲突,需要在config/server.xml中修改对应的端口,默认8080
- 启动tomcat
$ cd ../bin
$ chmod +x *.sh
$ sh startup.sh
启动tomcat:
bin/startup/sh
;停止tomcat:bin/shutdown.sh
日志文件在logs/catalina.out
看看logs文件下的localhost.xx.log等文件看看报错信息排查问题,如jdk版本不匹配等问题,就需要升级jdk
- 浏览器访问jenkins服务地址
http://<tomcat_ip>:<tomcat_port>/jenkins
docker部署
- 可进一步参看之前的文章docker简介及使用,这里以安装
jenkinsci/blueocean image
镜像为例(该镜像包含当前的长期支持 (LTS) 的Jenkins版本,捆绑了所有Blue Ocean插件和功能,否则可在jenkins插件中查找并安装Blue Ocean插件)
$ docker pull jenkinsci/blueocean
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkinsci/blueocean latest 5d40e801e0a5 19 hours ago 605MB
$ docker run --name monkey_jenkins -p 8080:8080 -itd -v ~/Documents/jenkins_home:/var/jenkins_home jenkinsci/blueocean
$ docker logs -f monkey_jenkins
- 查看初始化密码
$ docker exec -it monkey_jenkins bash
$ bash-5.1$ cat /var/jenkins_home/secrets/initialAdminPassword
- blue ocean版本可直接访问
http://<ip>:8080/blue
jenkins流水线
pipeline入门
- jenkins流水线入门
- 声明式流水线(Declarative Pipeline)
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
triggers {
cron('H */4 * * 1-5')
}
stages {
stage('Build') {
steps {
//
}
}
stage('Test') {
steps {
//
}
}
stage('Deploy') {
steps {
//
}
}
}
post {
always {
echo 'I will always say Hello again!'
}
}
}
- 脚本化流水线(Scripted Pipeline)
与声明式不同的是, 脚本化流水线实际上是由 Groovy构建的通用 DSL 。 Groovy 语言提供的大部分功能都可以用于脚本化流水线的用户
Jenkinsfile (Scripted Pipeline)
node {
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}
jenkinsfile的使用
- 对Jenkins 流水线的定义被写在一个文本文件中 (成为 Jenkinsfile),该文件可以被提交到项目的源代码的控制仓库
- 使用 Jenkinsfile