zoukankan      html  css  js  c++  java
  • 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机器,访问到了部署的项目

  • 相关阅读:
    分享分享JavaScript100例-仅供参考
    为每个页面加上Session判断
    Javascript实现真实字符串剩余字数提示
    格式与文件扩展名指定的格式不一致
    谈谈Github Universe 2019
    合并两个有序链表的golang实现
    二叉搜索树的最近公共祖先的golang实现
    验证二叉搜索树的golang实现
    三数之和的golang实现
    有效的字母异位词的golang实现
  • 原文地址:https://www.cnblogs.com/lichouluoyu/p/14782047.html
Copyright © 2011-2022 走看看