blogSite

我是谁?我在哪儿?我在干什么?

View project on GitHub

Jenkins 标准用法

CentOS安装、配置Jenkins

  • Jenkins官网
    1. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    2. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
      If you've previously imported the key from Jenkins, the rpm --import will fail because you already have a key. Please ignore that and move on.
      
    3. yum install jenkins
           可能会因为网络原因失败很多次,不要着急,多试几次就好了。。。
      
    4. 配置端口
           vi /etc/sysconfig/jenkins
      
           ## Type:        integer(0:65535)
           ## Default:     8080
           ## ServiceRestart: jenkins
           #
           # Port Jenkins is listening on.
           # Set to -1 to disable
           #
           JENKINS_PORT="7070"
      
    5. 配置权限,将默认用户修改为root;修改JENKINS_JAVA_OPTIONS-Xmx512m以限制Jenkins运行时占用的内存大小,如果不进行限制,可能会内存溢出导致构建失败
           vi /etc/sysconfig/jenkins
      
           ## Type:        string
           ## Default:     "jenkins"
           ## ServiceRestart: jenkins
           #
           # Unix user account that runs the Jenkins daemon
           # Be careful when you change this, as you need to update
           # permissions of $JENKINS_HOME and /var/log/jenkins.
           #
           JENKINS_USER="root"
      
           ## Type: string
           ## Default:     "-Djava.awt.headless=true"
           ## ServiceRestart: jenkins
           #
           # Options to pass to java when running Jenkins.
           #
           # JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
           JENKINS_JAVA_OPTIONS="-Xmx512m"
      
    6. 修改目录权限
           chown -R root:root /var/lib/jenkins
           chown -R root:root /var/cache/jenkins
           chown -R root:root /var/log/jenkins
      
    7. 启动
           systemctl start jenkins.service
      

      执行systemctl status jenkins.service查看服务器状态,如果出现启动失败,失败错误信息为Starting Jenkins bash:/usr/bin/java:No such file or directory是java环境配置的问题,找到jdk目录,创建软链接即可:

           ln -s /usr/lib/jdk1.8.0_292/bin/java /usr/bin/java
      
    8. 第一次打开,需要执行命令查看默认密码
           cat /var/lib/jenkins/secrets/initialAdminPassword
      
    9. 选择安装推荐插件
    10. 插件安装完成以后创建管理员账户
    11. 安装完成

      开始使用Jenkins

  1. 系统管理-->全局工具配置中对maven(maven的版本需要跟开发环境一致,否则可能编译不成功)、jdk、git等做配置
    • 查看JAVA_HOME位置 方法
     ********查询openjdk安装目录方法如下********
     # which java
     /usr/bin/java
    
     # ls -lrt /usr/bin/java
     lrwxrwxrwx 1 root root 22 Apr 23 17:06 /usr/bin/java -> /etc/alternatives/java
    
     # ls -lrt /etc/alternatives/java
     lrwxrwxrwx 1 root root 73 Apr 23 17:06 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/bin/java
    
  2. 配置gitlab公钥

     xxxx@example.com 为自己的gitlab邮箱
     生成密钥
     # ssh-keygen -t rsa -C "xxxx@example.com"
     展示密钥
     # cat /root/.ssh/id_rsa.pub
     ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEjsmyREwXFAWHpHf5/IfyTNBlznsZDCYRfRKE+tyMrp5qgEjcIh6IFgvaJdgv7SJjDwAMk6S2xasV+IjWF0csRC3yrFGbcCCPv1yRrPCidyzpqZGFX/sNjkg6uJUsfDNeJKoaC60YUz1LsaRo5OCHvQJxthgWUaGgeycw5NHPnJVJVY7t0/jsC4zWyomENtqbBfGRpnTXWn8+wC6gbXd2ltXg5uXolZC4BaqeXphFvRLLljdhEjqvi75ZjlzwINk7smmwoS4arhnotSufl2NNhmVL9mLoSkM2l3LbE8L5yTx/C9dKHixMCGpYa1cTkva4c8XCShNtCmDm0yJ4AvdR xxxx@example.com
    

    在gitlab主页面中,依次点击右上角头像 --> Settings --> SSH Keys,粘贴上面获得的公钥ssh-rsa

  3. Jenkins,右上角用户名 --> 凭据 --> 系统凭据,选择SSH Username with private key进行添加,将步骤2中的私钥id_rsa粘贴在Private Key中,UserName只是在Jenkins中方便在其他地方进行选择(不涉及其他平台所以可以随便取名字)
  4. Dashboard --> 新建任务
    • 源码管理选择Git,填写Repository URL: git@xxxxx:xxx/xxxx.gitCredentials选择步骤3中的UserName相同的一个
  5. Jenkins安装插件Git Parameter,为了配置git的相关参数
  6. 选中参数化构建过程,选择git参数,然后配置git分支参数,名称Branch(自定义名字,起自己觉得有意义的)
  7. 源码管理中选择git,在指定分支的时候写参数化构建过程中配置的参数$Branch
  8. 构建环境中选择调用顶层 Maven 目标(英文名称Invoke top-level Maven targets

     Maven 版本
         选择在 全局工具配置 中配置的maven名称
    
     目标
         构建的指令 (看哪个可以用使用哪个吧)
         clean package -DskipTests
         clean package -Dmaven.test.skip=true
         clean install
    
  9. Jenkins安装插件Deploy to container,为了将代码放到tomcat容器中
  10. 在/usr/local/tomcat/apache-tomcat-8.5.41/conf/tomcat-user.xml中创建用户名和密码

    <tomcat-users>
    
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/> 
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="tomcat@deployer" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
    </tomcat-users>
    
  11. Jenkins,在右上角用户名 --> 凭据 --> 系统凭据中添加Username with password,输入上面在tomcat中设定好的用户名和密码
  12. 构建后操作中选择Deploy war/ear to a container

    WAR/EAR files
    target/*.war
    
    Context path
    /simpleerp
    
    Containers
    选择步骤11中配置的内容,Tomcat URL 根据具体情况进行设置 http://localhost:8080
    

    关键节点
    ……….
    Building in workspace /var/lib/jenkins/workspace/simpleerp
    ……….
    [simpleerp] $ /usr/local/maven3.6.3/bin/mvn clean install
    ……….
    WAR/EAR files : 指定输出的文件,如果有多个war包的情况下需要详细进行指定,这里只会生成一个war包,所以可以指定为*.war,相对的位置是输出目录simpleerp
    Context path : 源代码及构建后输出的文件target/*.war所在的目录

  13. 应用
  14. 我的视图页面选择需要构建的工程,点击Build with Parameters,选择 Branch 开始构建

Jenkins卸载

  1. 关闭Jenkins服务systemctl stop jenkins.service
  2. 删除Jenkins套件rpm -e jenkins
  3. 查找是否还有Jenkins套件的依赖,有就删除rpm -qa | grep jenkins
  4. 删除系统中Jenkins相关的文件
    rm -rf /etc/sysconfig/jenkins.rpmsave
    rm -rf /var/cache/jenkins/
    rm -rf /var/lib/jenkins/
    rm -rf /var/log/jenkins
    rm -rf /usr/lib/jenkins
    

遇到的问题

  • [DeployPublisher][INFO] Build failed, project not deployed
    原因: Jenkins运行时内存溢出导致Jenkins假死,导致构建失败;
    解决方法: 修改Jenkins配置文件/etc/sysconfig/jenkins中的JENKINS_JAVA_OPTIONS,限制大小;

参考文档

首页 > 学习总览 > 实用工具学习/提高效率 > Jenkins