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

[经验分享] [原创]CI持续集成系统环境

[复制链接]

尚未签到

发表于 2018-1-7 06:41:23 | 显示全部楼层 |阅读模式
  Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节。
  下面对Jenkins环境的部署做一记录。
  --------------------------------------------------------------------------------------
  1)安装java(yum安装java1.7)
  java环境安装参考:Centos中yum方式安装java
[iyunv@115 ~]# java -version

  java version "1.7.0_111"
  OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
  OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)
[iyunv@115 ~]# which java

  /usr/bin/java
[iyunv@115 ~]# ll /usr/bin/java

  lrwxrwxrwx. 1 root root 22 Oct 30 01:29 /usr/bin/java -> /etc/alternatives/java
[iyunv@115 ~]# ll /etc/alternatives/java

  lrwxrwxrwx. 1 root root 46 Oct 30 01:29 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
[iyunv@115 jvm]# pwd

  /usr/lib/jvm
[iyunv@115 jvm]# ll

  total 4
  lrwxrwxrwx. 1 root root   26 Oct 30 01:29 java -> /etc/alternatives/java_sdk
  lrwxrwxrwx. 1 root root   32 Oct 30 01:29 java-1.7.0 -> /etc/alternatives/java_sdk_1.7.0
  drwxr-xr-x. 9 root root 4096 Oct 30 01:29 java-1.7.0-openjdk-1.7.0.111.x86_64
  lrwxrwxrwx. 1 root root   35 Oct 30 01:29 java-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.111.x86_64
  lrwxrwxrwx. 1 root root   34 Oct 30 01:29 java-openjdk -> /etc/alternatives/java_sdk_openjdk
  lrwxrwxrwx. 1 root root   21 Oct 30 01:29 jre -> /etc/alternatives/jre
  lrwxrwxrwx. 1 root root   27 Oct 30 01:29 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
  lrwxrwxrwx. 1 root root   39 Oct 30 01:29 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.111.x86_64/jre
  lrwxrwxrwx. 1 root root   29 Oct 30 01:29 jre-openjdk -> /etc/alternatives/jre_openjdk
  由此可知,java的home目录是/usr/lib/jvm/java-1.7.0-openjdk.x86_64
  设置java的环境变量
[iyunv@115 ~]# vim /etc/profile

  .......
  export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64

  export>  export PATH=$PATH:$JAVA_HOME/bin
  使之生效
[iyunv@115 ~]# source /etc/profile

[iyunv@115 ~]# echo $JAVA_HOME

  /usr/lib/jvm/java-1.7.0-openjdk.x86_64
[iyunv@115 ~]# echo $CLASSPATH

  .:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/rt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/dt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/tools.jar
  ------------------------------------------------------------------------------------------------------------------------------
  上面java的环境变量一定要设置!不然tomcat启动会失败,会有以下报错:
  INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
  ------------------------------------------------------------------------------------------------------------------------------
  2)安装tomcat环境
  安装包下载地址:https://pan.baidu.com/s/1bDHT5G
  提取密码:btir
  将下载的apache-tomcat-7.0.42.tar.gz包解压放到/usr/local目录下,改名为tomcat7。
  即tomcat路径为/usr/local/tomcat7
  3)安装jenkins
  jenkins安装包下载地址:http://pan.baidu.com/s/1o7T26Rg
  提取密码:aeka
  直接将 jenkins.war拷贝到/usr/local/tomcat7/webapps目录下,webapps目录下原来的内容全部删除
[iyunv@115 webapps]# pwd

  /usr/local/tomcat7/webapps
[iyunv@115 webapps]# ll

  -rw-r--r--.  1 root root 63664946 2月   3 22:26 jenkins.war
  修改tomcat的配置文件,确保使用UTF-8编码(如下添加URIEncoding="UTF-8"),以防jenkins出现中文乱码:
[iyunv@115 conf]# pwd

  /usr/local/tomcat7/conf
[iyunv@jenkins-server conf]# vim server.xml

  ........
  <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443" />
  设置系统环境变量,在/etc/profile底部添加下面内容
[iyunv@115 conf]# vim /etc/profile

  .......
  JENKINS_HOME="/usr/local/tomcat7/webapps/jenkins"
  export JENKINS_HOME
  使之生效
[iyunv@115 conf]# source /etc/profile

[iyunv@115 conf]# echo $JENKINS_HOME

  /usr/local/tomcat7/webapps/jenkins
  然后重启tomcat服务
[iyunv@115 webapps]# /usr/local/tomcat7/bin/startup.sh

[iyunv@115 webapps]# lsof -i:8080


  COMMAND   PID USER   FD   TYPE   DEVICE>  java    45515 root   46u  IPv6 47030248      0t0  TCP *:radan-http (LISTEN)
[iyunv@115 webapps]# pwd

  /usr/local/tomcat7/webapps
[iyunv@115 webapps]# ll

  total 62180
  drwxr-xr-x. 9 root root     4096 Oct 30 20:39 jenkins
  -rw-r--r--. 1 root root 63664946 Oct 30 20:38 jenkins.war
  然后访问http://ip/8088/jenkins即可!
  登陆jenkins后,可以在“系统管理”的Configure Global Security创建用户,创建后还需要注册后才能登陆。
  =======================温馨提示====================
  

注意tomcat版本问题,本案例中的jenkins.war包适用于tomcat7版本。tomcat版本如果出现不兼容问题,会导致webapps下的应用问题(比如数据目录被莫名情况等问题)  

  另:
  上面的jenkins环境部署服务器只有内网ip(192.168.1.25),没有外网ip。
  那么访问是通过具有外网ip(比如是113.110.186.5)服务器NAT端口转发进行的。
  操作如下:
  1)在113.110.186.5/192.168.1.5机器上进行NAT端口转发设置,由8080端口转发到192.168.1.25的8080端口:
[iyunv@bastion-IDC ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.25:8080

[iyunv@bastion-IDC ~]# iptables -t nat -A POSTROUTING -d 192.168.1.25/32 -p tcp -m tcp --sport 8080 -j SNAT --to-source 192.168.1.5

[iyunv@bastion-IDC ~]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

[iyunv@bastion-IDC ~]# service iptables save

[iyunv@bastion-IDC ~]# service iptables restart

  确保nat端口转发设置成功后,/etc/sysconfig/iptables文件里要注释掉下面两行!不然nat转发会有问题!
  一般如上面在nat转发规则设置好并save和restart防火墙之后就会自动在/etc/sysconfig/iptables文件里删除掉下面两行内容了。
[iyunv@bastion-IDC ~]# vim /etc/sysconfig/iptables

  ..........
  #-A INPUT -j REJECT --reject-with icmp-host-prohibited
  #-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[iyunv@bastion-IDC ~]# service iptables restart

  开启ip路由转发功能
[iyunv@linux-node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

  或者
[iyunv@linux-node1 ~]# cat /etc/sysctl.conf

  ..........
  net.ipv4.ip_forward = 1
[iyunv@linux-node1 ~]# sysctl -p

  2)在192.168.1.25上关闭防火墙
  首先关闭防火墙
[iyunv@115 ~]# service iptables stop

  设置网关为192.168.1.5
[iyunv@115 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

  ......
  GATEWAY=192.168.1.5
  ......
[iyunv@115 ~]# /etc/init.d/network restart

  或者
[iyunv@115 ~]# route add default gw 192.168.1.5

[iyunv@dev-new-test1 ~]# route -n

  Kernel IP routing table
  Destination Gateway Genmask Flags Metric Ref Use Iface
  192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  0.0.0.0 192.168.1.5 0.0.0.0 UG 0 0 0 eth0
  最后测试访问jenkins:
  http://113.110.186.5:8080/jenkins就可以正常访问到192.168.1.25的8080端口了

  注意左下角设置”中文简体“翻译当前页


  由于上面已经在/etc/profile里添加了$JENKINS_HOME,所以在jenkins界面里”系统设置“里可以看到jenkins的主目录就是$JENKINS_HOME


  ------------------------------------------------------------------------------------------------------------------------------------
  jenkins作为发版系统的用处:
  在jenkins里面添加工程,在工程里添加对应的项目
  在项目配置里的“代码管理”环节,配置svn或git(需要另行下载git插件)代码下载(比如svn和git的url),将svn代码下载到jenkins对应的项目即job的workspace下;
  然后在“构建”->“Excute shell”里编写rsync脚本(或在jenkins本机编写脚本,这Excute shell这里指明脚本路径)发布到远程的目标机器上。
  如果jenkins的“管理插件”里没有可选插件供安装,或者没有最新插件,可以点击“高级”->“升级站点”(采用默认的站点地址http://updates.jenkins-ci.org/update-center.json)->“立即获取”。获取后,可选插件就会更新。


运维网声明 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-432437-1-1.html 上篇帖子: jenkins gitlab整合注意事项 下篇帖子: Jenkins结合ant传递参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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