Jenkins 部署与搭建

基于CentOS 6.5 服务器上已装 JDK ,Tomcat 。

1. 在Linux服务器上下载安装Jenkins

  • 下载地址 : https://jenkins.io/ 下载如下的war包版本即可
    1557365942123.png
  • 将其部署到tomcat之中并启动,然后按提示输入 /root/.jenkins/secrets/initialAdminPassword 中的密码
  • 安装Jenkins插件(额外推荐插件Rebuilder、Safe Restart,可在系统管理 --> 插件管理中选择安装)
  • 创建管理员用户


    1557366682598.png

2. 安装git, maven 并进行相关配置

2.1 安装git

  • 安装git

    yum install git
    
  • 生成密钥并配置到相应的仓库上

    ssh-keygen -t rsa -C "[email protected]"//你的邮箱地址
    连按三次回车  然后将 /root/.ssh/id_rsa.pub 中的公钥添加进仓库
    

2.2 安装maven

  • 安装maven

    将maven zip文件上传至Linux服务器,并解压
    unzip filename.zip
    
  • 修改maven 环境变量

    vim /etc/profile
    //添加如下内容
    export MAVEN_HOME=maven所在路径
    export PATH=$MAVEN_HOME/bin:$PATH
    
    //保存并退出
    //启动配置
    . /etc/profile
    

2.3将Linux服务器注册到Jenkins上

  • 开启服务器上的ssh服务

    通过一下命令查看是否开启
    netstat -anp | grep :22
    
    若netstat 命令报错 则先安装网络工具并重启服务器
    yum install net-tools
    
  • 在Jenkins中操作远程服务器

    系统管理 ---> 新建节点

1557371354255.png

其中JVM选项: 可以用来配置JVM的启动参数

  • 启动刚配置的节点

    若启动时,报类似如下错误
    /var/root/.ssh/known_hosts [SSH] No Known Hosts file was found at /var/roor/.ssh/known_hosts. Please ensure one is created at this path and that Jenkins can read it.
    
    则在服务器端执行如下命令
    cd /root/.ssh   //对应各自密钥所在文件目录
    cat id_rsa.pub > authorized_keys
    chmod 700 authorized_keys
    
    最后修改节点配置页面中的主机密钥验证策略项 Host Key Verification Strategy 为
    Manually trusted key Verification Strategy
    
  • 重新启动节点

    [05/09/19 10:54:49] [SSH] Starting agent process: cd "/usr/jenkins" && /usr/java/jdk1.8.0_161/bin/java  -jar remoting.jar -workDir /usr/jenkins
    May 09, 2019 10:54:49 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
    INFO: Using /usr/jenkins/remoting as a remoting work directory
    May 09, 2019 10:54:49 AM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
    INFO: Both error and output logs will be printed to /usr/jenkins/remoting
    <===[JENKINS REMOTING CAPACITY]===>channel started
    Remoting version: 3.30
    This is a Unix agent
    Evacuated stdout
    Agent successfully connected and online
    

    出现以上信息则启动成功

3 Jenkins 与Github/GitLab集成配置

### 3.1 创建新任务

输入任务名,选择构建自由风格的软件i项目 ---> Confirm

1557387163278.png

3.2 限制项目运行节点

选择项目的运行节点,用GitHub的话可以勾选GitHub项目。

1557387263050.png

3.3 源码管理

选择git,填写GitHub或GitLab代码库地址。这里会遇到授权失败的问题,搜索了很多方法,最终通过如下两个方法解决(一般通过私钥授权方式即可)。

  1. 添加私钥授权方式,将服务器中/root/.ssh/id_rsa中的私钥填入进行授权,之后要保证公钥已经添加进Github/GitLab中和写入/root/.ssh/authorized_keys 文件中


    1557387813346.png
  2. GitHub/GitLab账户密码验证

1557388167816.png

之后在Credentials中依次选择刚才添加的验证方式即可。

你也可以选择使用自己搭建的GitLab,具体的搭建方式见:个人Gitlab搭建及配置

3.4 构建及部署操作

1557394963425.png

其中:

  • WAR/EAR files : 指的是Jenkins工作目录下war的存放位置,也就是你所要部署的war包名称。
  • Context path :浏览器访问时的项目名。
  • Credentials :部署到指定tomcat下的授权验证方式
  • Tomcat URL : 目标tomcat,部署之前要保证目标Tomcat处于启动状态

3.5 获取tomcat授权方式

在没通过指定tomcat授权的情况下,通过Jenkins部署到该Tomcat下会报出如下错误

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:704)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:876)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:889)
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:173)
    ... 17 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://192.168.10.50:8083/manager/text/list
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:571)
    ... 20 more

修改对应tomcat目录下的/conf/tomcat-users.xml 文件,添加角色及用户。





修改对应tomcat下的 /webapps/manager/META-INF/context.xml文件,设置所有ip都能访问manager,这点很重要!之前搜索了很多博客都是因为缺少了这一点导致部署失败。


  
  

最后使用tomcat-user.xml文件中配置的用户进行授权。

1557395837733.png

返回工程重新构建即可,这次记录暂且到这。

你可能感兴趣的:(Jenkins 部署与搭建)