jenkins的几种安装方式
pipeline、jenkinsfile

官方文档

jenkins安装

war包安装

  1. 下载最新的 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)
  1. 运行命令java -jar jenkins.war --httpPort=8081(8081为jenkins服务启动的端口号)
  2. 浏览器访问jenkins服务地址http://<ip>:8081

浏览器上无法访问,可尝试关闭服务器防火墙systemctl disable firewalld.service(永久)
systemctl stop firewalld.service(暂时,重启后失效)

部署到tomcat中

  1. 部署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运行环境

  1. 将jenlins.war复制到$tomcat_home/webapp/
$ cd apache-tomcat-10.0.18
$ cd webapps
$ cp ../../jenkins.war .

如果端口冲突,需要在config/server.xml中修改对应的端口,默认8080

  1. 启动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

  1. 浏览器访问jenkins服务地址http://<tomcat_ip>:<tomcat_port>/jenkins

docker部署

$ 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入门

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

参考及扩张阅读