设为首页 收藏本站
查看: 1169|回复: 0

[经验分享] Jenkins CI CD

[复制链接]

尚未签到

发表于 2018-9-4 07:16:30 | 显示全部楼层 |阅读模式
  搭建SVN
  yum install subversion
  rpm -ql subversion
  svnversion --version 看安装成功没
  mkdir -p /var/svn/svnrepos 创建svn版本库目录
  svnadmin create /var/svn/svnrepos 创建版本库,会在/var/svn/svnrepos目录下生成如下这些文件
  进入conf目录,authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf SVN服务配置文件
  vi passwd
  在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
  vi authz
  在末尾添加如下代码:
  [/]
  dan=rw
  w=r
  意思是版本库的根目录dan对其有读写权限,w只有读权限。
  vi svnserve.conf
  打开下面的几个注释:
  anon-access = read #匿名用户可读
  auth-access = write #授权用户可写
  password-db = passwd #使用哪个文件作为账号文件
  authz-db = authz #使用哪个文件作为权限文件
  realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
  vi svnserve.conf
  打开下面的几个注释:
  anon-access = read #匿名用户可读
  auth-access = write #授权用户可写
  password-db = passwd #使用哪个文件作为账号文件
  authz-db = authz #使用哪个文件作为权限文件
  realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
  启动svn版本库
  svnserve -d -r /var/svn/svnrepoos
  Jenkins
  方便网站部署和持续集成
  需要一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库如SVN,GIT等
  一个jenkins持续集成服务器
  下载jdk,解压
  vi /etc/profile
  export JAVA_HOME=/usr/jdk

  export>  export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  source    /etc/profile            ; java -version
  下载apache-tomcat,解压,移到usr/local目录下,改名成tomcat
  /usr/local/tomcat/bin/startup.sh
  wget -c http://mirrors.jenkins-ci.org/war/latest/jenkins.war;
  jar -xf解压war文件并移到tomcat发布目录
  访问8080,系统设置
  配上jdk和maven,应用,保存
  下载maven解压移到data下
  cd /data
  wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/binaries/apache-maven-3.1.1-bin.tar.gz
  mv apache-maven-3.1.1 maven
  创建新项目,选maven项目
  配上svn,下面的build里的Goals and options加上clean install -Dmaven.test.skip=true
  点项目后面的启动,看console out,最后会有个war文件
clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior.  提示这个错误,是你主机的时间不对,ntp调下时间
  Caused by: java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE
  提示这个错误,是maven版本太高,换成3.3以下
  maven报错,就换个maven,maven里要有lib
  这里的执行流程:
  1通过svn取代码2进行编译,读取pom文件的依赖3生成war包
  在target目录下有个.war包,我们只需要把这个包部署到远程机器,这里部署到本地tomcat下
  自定义发布目录,在server.xml配置文件末尾 前加入如下行:
  
  ture表示实时变动,想自定义生效,要把webapps下的默认内容删掉
  解压edu.war
  我们发现jenkins并没有自动部署,最好是shell脚本定制部署,通过ansible,saltstack,ssh批量部署
  远程部署:jenkins把这个eru.war通过http发布,或者scp edu.war,然后解压到tomcat发布目录,删掉work这个缓存文件
  点项目,配置,最下面有个add post-build step,选execute shell
  这里的命令是在jenkins上运行
  1.发布http包cp /root/.jenkins/workspace/shaitu/target/edu.war /var/www/html
  1.或者在项目下面选构建后操作,选Archive the artifacts,填**/target/*.war
  这样jenkins会自动拷贝所有的war包到/root/.jenkins/jobs/shaitu/builds/lastSuccessfulBuild/archive/target/,但是这个包是在这个工程结束了才存,这里留的是上个版本的,所以还得自己从target里拷过来。。
  2.远程执行脚本ssh -l root 192.168.1.10* '/bin/bash /tmp/auto_deploy_war.sh'
  3.直接在远程执行脚本ssh root@192.168.1.10* 'bash -x -s' < /data/sh/auto_deploy_war.sh
  其中-x和-s是打印执行过程,可以去掉
  作业:写成脚本自动部署100台
  用ansible自动部署,在剧本里写
  - hosts: all
  remote_user: root
  tasks:
  - name: deploy launch war
  shell: cd /usr/local/tomcat/webapps/ROOT;rm -rf *;wget http://192.168.1.107:8080/edu.war;jar -xf edu.war;/usr/local/t
  omcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh
  后台执行命令
  #screen
  #输命令
  #exit



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-562176-1-1.html 上篇帖子: jenkins日志异常增大导致服务不可用的处理过程 下篇帖子: jenkins自动部署及插件安装及管理节点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表