• Jenkins实现自动化部署


    首先登录到服务器,目前我所使用的program-DEV环境所在服务器为:IP     登录密码为:密码

    1、基础配置

    检查所有环境变量:

    $ env

    2、下载安装包安装

    JDK:由于本机器已经安装,这里不在描述;

    Tomcat :把 tomcat下载安装包 (当前下载为tomcat-7.0.82)拷贝到 /work/tomcat/ 目录下,目前所有的安装文件全部安装在 /work/目录下,使用解压命令解压;

    Jenkins:把下载好的 jenkins.war (当前下载为 jenkins-2.46.1,为了访问方便,下载的时候全部使用jenkins,)扔在tomcat的webapp目录下面,这里使用 https://jenkins.io/download/ 下载地址,下载 
    Red Hat/Fedora/CentOS 版本;

    Maven :下载 maven下载安装包,扔在 /work/maven/  目录下,使用命令解压;

    备注:上面所有安装包可以使用tar.gz包,也可以使用命令下载并安装,这里使用tar.gz方式下载后拖拽到服务器,并解压。

    3、进入 tomcat 的bin 目录下,执行命令: 

    cd /work/tomcat/apache-tomcat-7.0.82/bin

    启动tomcat,执行命令,完成jenkins部署:

    sh startup.sh

    4、在tomcat下配置jenkins访问端口以及权限

    cd /work/tomcat/apache-tomcat-7.0.82/conf/

    把 tomcat-users.xml 在 </tomcat-user>里面新增角色权限 <user username="admin" password="program_admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

    把 server.xml 中的端口修改为自己使用端口,当前program使用端口为 7085,并在 <Connector port="7085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>中加入编码 URIEncoding="utf-8"

    保存上面修改,并使之立即生效,执行命令: source /work/tomcat/apache-tomcat-7.0.82/conf/server.xml  和  source /work/tomcat/apache-tomcat-7.0.82/conf/tomcat-users.xml    

    5、登录配置

    登录当前jenkins,登录地址为自己服务器IP:端口号/jenkins,例如当前:http://IP:port/jenkins然后,首次进入jenkins如要输入密码,密码位置:/work/jenkins/secrets/initialAdminPassword

    6、更新插件、用户、角色、工作

    插件:系统管理 → 插件管理 → 可选插件 最右侧,输入关键字就可以查询,然后点击安装,安装完成所有的后,重启一下jenkins,重启方法为浏览器地址重启:http://IP:port/jenkins/restart

    • SVN
    • SSH
    • Publish Over SSH
    • Maven

    安装这四个插件后加上刚才部署后默认的安装插件基本够用

    用户:可以新建一个用户,输入用户名,密码,确认密码,用户名称,邮箱(都是必填项)

    角色:安装角色插件,可选项

    工作:这里是新建一个项目,这个也可以在登录后就新建,这里可能会出现点击异常,不用理会,你可以停掉后台的服务器,然后重启jenkins服务器来操作,目前我没有找到原因;

    7、配置全局变量

    点击 系统管理 → 全局设置,看到

    主目录: /work/jenkins/workspace (这个是在服务器自己配置环境变量)

    工作空间根目录: ${JENKINS_HOME}/workspace/${ITEM_FULLNAME}

    构建记录根目录: ${ITEM_ROOTDIR}/builds

    Maven项目配置

    Local Maven Repository : Default (~/.m2/repository) (选择这个)

     执行者数量:5 (任意配置)

    生成前等待时间:5(任意配置)

    SCM重试次数:2(任意配置)

    Default View:All

    Jenkins Location

    这里配置是默认的配置

    Publish over SSH(这里很重点)

    在 SSH Servces 处新增一个服务SSH Server

    name:IP-dev(自定义,我这里比较方便记忆,使用IP-环境)

    Hostname:主机IP(这里使用IP,即服务器IP)

    Username:登录名称(当前使用的登录的账号,例如:dev使用的是用户名称)

    Remote Directory:/work(这里路径貌似也随意写,但是后面要注意逐级配对,例如这里是安装路径)

    点开下面的高级 ,然后勾选 Use password authentication, or use a different key ,点击 Test Configuration,下面出现 Success即可。

    到这里,基本上都配置完全局变量了,下面开始配置项目变量。

    8、配置项目

    General:在 6 新建了工作后,会出现在你的视图中,你可以点击进去,也可以在这里 新建 Enter an item name 任意输入名称,这个名称我个人感觉与你后面的配置要一致,不然出现错误,例如我这里是 gbss-webapp-admin;

    勾选丢弃旧的构建,输入3 和 5,(这里根据需求任意输入)

    源码管理:选择Subversion,Repository URL输入地址,Credentials 这里要新增一个你从SVN拉取代码的账号,其他不用配置;

    Build:在Root POM项输入:pom.xml (这里选择maven构建),Goals and options 输入:clean install -Pdev

    构建后操作:在增加构建后操作中选择:Send build artifacts over SSH 这个选择(这个选择无论是在一台机器还是两台机器都可以,如果jenkins部署与你的项目服务部署在一台机器,你也可以使用ant+deploy来部署);

    在SSH Servce中选择全局变量 IP-dev(这个在7步骤里面有写),

    在第一个Transfers Set中的Exec command中输入命令:

    cp /*/*.war /work/backup/war/

    这里是备份原来部署项目到备份文件夹,没有自己创建;

    在最下面点击 Add Transfers Set会新增一个Set,这里是要执行的命令,也可以分开执行,我这里就一个Set操作了。

    Source files:/jenkins部署新建项目/program-webapp/target/program*.war(源文件,指的是当前目录结构下面的jenkins中build文件)

    Remove prefix:/jenkins部署新建项目/program-webapp/target (移除前缀,这个就是上一个源文件去掉*.war包前面部分,这里是这么写,具体含义我不清楚)

    Remote directory:远程部署目录 (远程目录,这里指的是你要部署的位置)

    Exec command:(这里是要执行的最后命令部分,如下)

    cp /jenkins/*.war /work/jboss/*/*/deploy/
    /work/*/*/*/stop.sh
    sleep 10
    /work/*/*/*/start.sh

    先把jenkins生成的.war拷贝到服务器下面,

    停掉服务器

    等待线程结束(这里是需要的)

    启动服务

    以上就是 program盒子 jenkins + maven + svn + SSH + jdk + tomcat + jboss部署的全过程。其中 jboss 部署业务项目program,tomcat部署应用jenkins。

    另外附几个我出现错误的解决方案:

    一、

    出现错误:
    Jenkins 通过SVN update后报错FATAL: hudson.scm.SVNRevisionState cannot be cast to hudson.scm.SVNRevisionSt
    解决方案:

    http://blog.csdn.net/wangqicumt/article/details/78876279

    二、

    出现错误:

    AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+got+java.awt.headless+problem
    java.lang.UnsatisfiedLinkError

    解决方案:

    http://blog.sina.com.cn/s/blog_8ea8e9d50102xfrf.html

    借鉴别人的配置:

    http://blog.csdn.net/zl199307/article/details/75103488

    https://www.cnblogs.com/Iqiaoxun/p/5350589.html

    http://www.cnblogs.com/zz0412/p/jenkins02.html

    http://www.cnblogs.com/zz0412/p/jenkins_jj_10.html

    http://blog.csdn.net/wangmuming/article/details/22925895

    https://www.cnblogs.com/toSeek/p/6714340.html?utm_source=itdadao&utm_medium=referral

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    欢迎大家关注我的个人博客 Lycos | 小站 !由于最近没时间处理,原域名http://www.liuyuchuan.com暂时停止使用

  • 相关阅读:
    光纤网卡与HBA卡区别
    Windows远程桌面相关
    port bridge enable命令导致的环路
    堡垒机jumpserver测试记录--使用
    堡垒机jumpserver测试记录--安装
    Centos6.5升级openssh、OpenSSL和wget
    linux抓包工具tcpdump使用总结
    iOS -视频缩略图的制作
    Mac 上视图的坐标系统原点位于左下角
    Mac
  • 原文地址:https://www.cnblogs.com/yuchuan/p/jenkins_maven_ssh.html
Copyright © 2020-2023  润新知