Jenkins分布式及pipline使用(小节8)

136 阅读1分钟

Jenkins分布式

图片.png

103和104

#创建数据目录
mkdir -p /var/lib/jenkins

103

apt安装jdk

apt install openjdk-8-jdk -y
mkdir -p /var/lib/jenkins/jdk/bin/

whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz    <--

#软链接
ln -sv /usr/bin/java /var/lib/jenkins/jdk/bin/java

104

编译安装jdk、下载地址

cd /usr/local/src
tar xvf jdk-8u351-linux-x64.tar.gz

#添加JAVA环境变量
vim /etc/profile
...
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

#使java变量生效
source /etc/profile

#创建目录
mkdir /var/lib/jenkins/jdk/bin -p

#软链接
ln -sv /usr/local/src/jdk1.8.0_351 /usr/local/jdk
ln -sv /usr/local/jdk/bin/java /var/lib/jenkins/jdk/bin/

系统管理-节点管理 图片.png

新建节点时间一定要同步、date查看【master(102)、slave(103、104)】

图片.png

图片.png

图片.png

图片.png

图1

图片.png

图片.png

系统管理-节点管理-'jenkins-slave1'-日志 图片.png 再次新建节点

图片.png

图片.png

图片.png 图2 图片.png

系统管理-节点管理-'jenkins-slave2'-日志

图片.png

图片.png

pipline

官方介绍:jenkins.io/2.0

pipline 是帮助 jenkins 实现 CI 到 CD 转变的重要角色,是运行在jenkins 2.X 版本的核心插件,简单来说 pipline 就要一套运用于 jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程,从而实现单个任务很难实现的复杂流程编排和任务可视化,pipline 的实现方案是一套Groovy DSL,任何发布流程都可以表述为一段Groovy 脚本。

新建任务

图片.png

图片.png

103

#生成密钥
ssh-keygen

#拷贝密钥到'远程主机的tomcat用户' 密码:1234.com
ssh-copy-id tomcat@192.168.37.105
ssh-copy-id tomcat@192.168.37.106

103 slave 没有密钥(方法)

图片.png

图片.png

图片.png

node {
  stage('代码clone')
    git branch: 'develop', credentialsId: 'cf8129d1-9772-475b-a9a8-ea857687d1ab', url: 'git@192.168.37.101:linux01/web1.git'
  stage('代码打包')
    sh 'cd /var/lib/jenkins/workspace/pipline-test && tar  czvf app.tar.gz  ./*'

  stage('代码拷贝')
    sh 'cd /var/lib/jenkins/workspace/pipline-test &&  scp app.tar.gz tomcat@192.168.37.105:/data/tomcat/tomcat_appdir'
    sh 'cd /var/lib/jenkins/workspace/pipline-test &&  scp app.tar.gz tomcat@192.168.37.106:/data/tomcat/tomcat_appdir'
	
  stage('代码部署')
    sh 'ssh tomcat@192.168.37.105 "/etc/init.d/tomcat stop"'
    sh 'ssh tomcat@192.168.37.106 "/etc/init.d/tomcat stop"'
	 
    sh 'ssh tomcat@192.168.37.105 "rm -rf /data/tomcat/tomcat_webdir/app && rm -rf /data/tomcat/tomcat_webapps/myapp"'
    sh 'ssh tomcat@192.168.37.106 "rm -rf /data/tomcat/tomcat_webdir/app &&  rm -rf /data/tomcat/tomcat_webapps/myapp"'
   
    sh 'ssh tomcat@192.168.37.105  "mkdir /data/tomcat/tomcat_webdir/app && cd /data/tomcat/tomcat_appdir && tar xvf app.tar.gz  -C /data/tomcat/tomcat_webdir/app/"'
    sh 'ssh tomcat@192.168.37.106  "mkdir /data/tomcat/tomcat_webdir/app && cd /data/tomcat/tomcat_appdir && tar xvf app.tar.gz  -C /data/tomcat/tomcat_webdir/app/"'

  stage('代码替换')
    sh 'ssh tomcat@192.168.37.105 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"'
    sh 'ssh tomcat@192.168.37.106 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"'
  
  stage('启动tomcat')
    sh 'ssh tomcat@192.168.37.105 "/etc/init.d/tomcat start"'
    sh 'ssh tomcat@192.168.37.106 "/etc/init.d/tomcat start"'
}

*105

修改版本号

cd /opt/web1

#修改页面信息
vim index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Linux01 项目1</title>
    </head>
    <body>
        <h1>Linux01 web1 v5</h1>
        <h1>Linux01 web1 v8</h1>
        <h1>Linux01 web1 v9</h1>    <--
    </body>
</html>

git add ./*
git commit -m "v9"
#账号:zhangsan 密码:1234.com
git push

立即构建

图片.png

版本变化

图片.png