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 "youremail@abc.com"//你的邮箱地址
    连按三次回车  然后将 /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 文件,添加角色及用户。

<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx"/>

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

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

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

1557395837733.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容