java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > jenkins持续自动化发布、集成

jenkins持续自动化发布、集成实践

作者:Jacky-008

文章描述了在两台服务器(10.1.1.13和10.1.1.14)上部署Jenkins和Tomcat的过程,包括环境准备、防火墙关闭、主机名解析、配置DNS、关闭SELinux、安装Java和Tomcat、配置Tomcat用户和访问权限、安装Jenkins、启动Jenkins服务以及配置Java项目

1. jenkins部署环境

1-1.服务器准备

hostnameIP地址安装包
jenkins-node0310.1.1.13JDK/JENKINS
nginx-node0410.1.1.14TOMCAT/JDK

1-2.关闭防火墙

##临时关闭firewalld防火墙,重启服务器失效
systemctl stop firewalld
##永久关闭firewalld防火墙,必须重启服务器生效
systemctl disable firewalld

1-3.主机名解析

echo 10.1.1.13  jenkins-node03 >>/etc/hosts
echo 10.1.1.14  nginx-node04 >>/etc/hosts

1-4.配置dns server服务器IP地址

echo nameserver 202.96.128.86 >>/etc/resolv.conf 

1-5.关闭selinux

##临时关闭,服务器重启失效
setenforce 0
##永久关闭,服务器重启生效,与setenforce一起使用,就可以不用重启服务器
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
##查看当前selinux状态
getenforce

2. 部署tomcat+Java(10.1.1.14)

2-1.下载、解压、安装tomcat

wget http://us.mirrors.quenda.co/apache/tomcat/tomcat-8/v8.5.50/src/apache-tomcat-8.5.50-src.tar.gz
tar -xf apache-tomcat-8.5.50-src.tar.gz
mv apache-tomcat-8.5.50 /usr/local/apache-tomcat-8.5.50
ln -s /usr/local/apache-tomcat-8.5.50 /usr/local/apache-tomcat

2-2.下载安装jdk

##这下载有点麻烦,需要注册才能下载
wget https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1577439692_6cc578b66f85128ed13aa7d02d86cf16
##解压
tar -xf jdk-8u101-linux-x64.tar.gz
##把jdk包放在/usr/local/目录下,这是个人习惯。(一看目录就知道是哪个版本)
mv jdk1.8.0_101 /usr/local/jdk1.8.0_101
ln -s /usr/local/jdk1.8.0_101 /usr/local/java

2-3.java环境配置

echo 'export JAVA_HOME=/usr/local/java/' /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile
tail /etc/profile

2-4.查看java版本

java -version

2-5.修改Apache-tomcat配置

修改/usr/local/apache-tomcat/conf/tomcat-users.xml

vim /usr/local/apache-tomcat/conf/tomcat-users.xml
tail /usr/local/apache-tomcat/conf/tomcat-users.xml
##添加以下内容,注意一定要在</tomcat-users>以内
##---------------------------------------------
<role rolename="admin"/> 
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/><user name="admin" password="qaz123" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
#--------------------------------------------------------
##user name="admin":管理员admin  
##password="qaz123":管理员密码
##roles:角色
</tomcat-users>

修改/usr/local/tomcat8/webapps/manager/META-INF/context.xml

vim /usr/local/tomcat8/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10.1.1.*" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
##allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10.1.1.*":允许的主机IP段或者IP地址,多个用“|”分隔

2-6.浏览器登录10.1.1.14:8080

2-7.点击manager_webapp进入后台

后台界面,jenkins可以通过 "应用程序"栏中的“命令”对tomcat操作

3. 部署jenkins+Java(10.1.1.13)

3-1.安装jenkins(java安装就不说了,上面有)

官方文档安装方法:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions可以参考

##配置jenkins.repo源
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
##安装key
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
##如果你现在就yum install -y jenkins安装下载很慢,必须得配置国内源,https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/这个清华大学yum源
##修改jenkins.repo源,这个仅供参考
cat /etc/yum.repos.d/jenkins.repo 
[jenkins]
name=Jenkins-stable
baseurl=https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
gpgcheck=1
##安装jenkins
yum install -y jenkins

3-2.启动jenkins.service

systemctl start jenkins.service
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and"journalctl -xe" for details.
##发现报错,蛋痛。。按提示操作
systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2019-12-27 16:42:13 CST; 12s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 22089 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
Dec 27 16:42:13 jenkins-node03 systemd[1]: Starting LSB: Jenkins Automation Server...
Dec 27 16:42:13 jenkins-node03 runuser[22094]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Dec 27 16:42:13 jenkins-node03 jenkins[22089]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Dec 27 16:42:13 jenkins-node03 runuser[22094]: pam_unix(runuser:session): session closed for user jenkins
Dec 27 16:42:13 jenkins-node03 jenkins[22089]: [FAILED]
Dec 27 16:42:13 jenkins-node03 systemd[1]: jenkins.service: control process exited, code=exited status=1
Dec 27 16:42:13 jenkins-node03 systemd[1]: Failed to start LSB: Jenkins Automation Server.
Dec 27 16:42:13 jenkins-node03 systemd[1]: Unit jenkins.service entered failed state.
Dec 27 16:42:13 jenkins-node03 systemd[1]: jenkins.service failed.
##发现没起来,报错找不到java命令路径
##解决方法:
which java
  /usr/local/java/bin/java
vi /etc/init.d/jenkins
##找到下面的内容
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
##/usr/bin/java改为你java的路径/usr/local/java/bin/java
# /usr/bin/java
/usr/local/java/bin/java
systemctl start jenkins
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.##有警告,按照提示操作
systemctl daemon-reload
##起来了--哈哈
ps -ef |grep jenkins
jenkins   22133      1 99 16:46 ?        00:00:33 /usr/local/java/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

3-3.浏览器登录10.1.1.13:8080

需要administrator password 去提示的路径复制密码

cat /var/lib/jenkins/secrets/initialAdminPassword
c0987be1629e404aa2b3d5f6bb25aef6

接下来按照提示操作,就OK了

4.Java项目配置(Jenkins服务器)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文