jenkins流水线项目发布

jenkins流水线项目发布(拉代码、打包、发布)

环境

系统 ip、主机名
redhat 8 192.168.100.137/redhat:提前安装好了jenkins
redhat 8 192.168.100.138/tomcat1:提前安装好了jenkins

安装jenkins请参考Jenkins配置使用

替换Jenkins源为国内

https://updates.jenkins.io/update-center.json
改为
https://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

 

 

 

 Jenkins打包的方式:

maven

ant

gradle

在使用功能之前,先安装几个插件

git
pipeline
gitee

 如果安装报错,请多试几遍,多半是网络问题

 创建新项目

 

 

 

 

 

 

 这里的连接可以去github或者码云找,我贴一个现在用的 

http://github.com/lizhenliang/tomcat-java-demo.git

 

 

 

//在本地虚拟机可以看得到拉取下来的代码
[root@RedHat ~]# cd .jenkins/
[root@RedHat .jenkins]# ls
com.dabsquared.gitlabjenkins.connection.GitLabConnectionConfig.xml
com.dabsquared.gitlabjenkins.GitLabPushTrigger.xml
com.gitee.jenkins.connection.GiteeConnectionConfig.xml
com.gitee.jenkins.trigger.GiteePushTrigger.xml
config.xml
hudson.model.UpdateCenter.xml
hudson.plugins.git.GitTool.xml
identity.key.enc
jenkins.install.InstallUtil.lastExecVersion
jenkins.install.UpgradeWizard.state
jenkins.model.JenkinsLocationConfiguration.xml
jenkins.security.apitoken.ApiTokenPropertyConfiguration.xml
jenkins.security.QueueItemAuthenticatorConfiguration.xml
jenkins.security.UpdateSiteWarningsConfiguration.xml
jenkins.telemetry.Correlator.xml
jobs
logs
nodeMonitors.xml
nodes
org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml
plugins
queue.xml
queue.xml.bak
secret.key
secret.key.not-so-secret
secrets
updates
userContent
users
workflow-libs
workspace
[root@RedHat .jenkins]# cd workspace/
[root@RedHat workspace]# ls
tomcat_demo
[root@RedHat workspace]# ls tomcat_demo/
db  Dockerfile  LICENSE  pom.xml  README.md  src

尝试打包代码

代码 

pipeline {
    agent any
    
    stages {
        stage('pull code') {
            steps {
                git 'http://github.com/lizhenliang/tomcat-java-demo.git'
            }
        }

        stage('package') {
            steps {
                sh """
                mvn clean
                mvn package
                """
            }
        }
        
        
    }
}

 

 这里失败了好多次,因为网络的原因,请在网络环境良好的情况下做

尝试部署

给第二台机器做免密认证

//RedHat
//做免密认证
[root@RedHat ~]# ssh-keygen -t rsa
[root@RedHat ~]# ssh-copy-id root@192.168.100.138
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.100.138's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.100.138'"
and check to make sure that only the key(s) you wanted were added.
//tomcat1
//关闭防火墙和selinux
[root@RedHat tomcat]# setenforce 0
[root@RedHat tomcat]# systemctl disable  --now firewalld

 代码

pipeline {
    agent any
    
    stages {
        stage('pull code') {
            steps {
                git 'http://github.com/lizhenliang/tomcat-java-demo.git'
            }
        }
        stage('package') {
            steps {
                sh """
                mvn clean
                mvn package
                """
            }
        }
        stage('deploy') {
            steps {
                sh """
                scp target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.100.138:/usr/src/tomcat/webapps/
                ssh root@192.168.100.138 '/usr/src/tomcat/bin/catalina.sh stop && /usr/src/tomcat/bin/catalina.sh start'
                """
            }
        }
    }
}

 

//tomcat1
//查看tomcat端口号,已经起来了,说明部署成功
[root@RedHat tomcat]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* 
LISTEN 0 128 [::]:22 [::]:* 
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* 
LISTEN 0 100 *:8080 *:* 
[root@RedHat tomcat]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@RedHat tomcat]# ls webapps/
docs host-manager ly-simple-tomcat-0.0.1-SNAPSHOT.war ROOT
examples ly-simple-tomcat-0.0.1-SNAPSHOT manager

去浏览器访问tomcat1机器,访问到了部署的项目

原文地址:https://www.cnblogs.com/lichouluoyu/p/14782047.html