Jenkins部署及持续集成、部署(CICD)

目录:

  1. Jenkins部署流程
  2. Jenkins持续集成-发布JAVA网站代码示例

Jenkins部署流程

  1. 下载jenkins war包
wget http://mirrors.jenkins-ci.org/war-stable/2.150.1/jenkins.war
  1. 配置java JDK,解压安装
tar xvf jdk1.8.0_131.tar.gz
mkdir -p /usr/java/
mv jdk1.8.0_131/ /usr/java/
  1. 配置java 环境变量,/etc/profile 配置文件中末尾加入
export JAVA_HOME=/usr/java/jdk1.8.0_131
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

加载环境变量,查看java版本

[root@localhost ~]# source /etc/profile

[root@localhost ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
  1. Tomcat配置
# 下载tomcat包
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz
# 解压
tar xvf apache-tomcat-8.5.47.tar.gz
# 创建tomcat目录
mkdir -p /usr/local/tomcat/

cp apache-tomcat-8.5.47/* /usr/local/tomcat/

cd /usr/local/tomcat/webapps/ROOT

cp /root/jenkins.war .

jar -xf jenkins.war
# 启动tomcat服务
[root@localhost ROOT]# /usr/local/tomcat/bin/startup.sh
  1. 访问主机的8080端口,注:如遇访问超市请自行查看防火墙,selinux配置
    Jenkins部署及持续集成、部署(CICD)_第1张图片
  2. 输入文件中的密码后,一路点点点

回到目录



Jenkins持续集成-发布JAVA网站代码示例

  • Jenkins是开源、免费的软件项目管理平台,真正底层处理业务各个模块,Jenkins将各个模块进行组合,将模块、步骤、流程关联起来;
  • JAVA网站代码通常开发人员使用Ant、Maven对源代码进行管理:网站源码编译、代码打包、代码单元测试、代码BUG处理等,而JAVA网站代码(业务系统)通过软件去编程的呢?Eclipse|IDEA等;
  • 需求:JAVA开发人员开发了一套JAVA业务系统,命名:EDU(教育系统),开发人员将业务系统源代码上传到SVN文件管理服务器

实际操作流程

  1. 基于Jenkins WEB平台-创建JOB工程(Maven风格);
  2. 配置JOB工程名称:edu(以业务系统名称命名);
  3. 填写SVN|GIT仓库的URL访问地址(用于远程下载源代码);
  4. Jenkins服务器部署Maven软件工具&设置JDK和Maven工具路径;(否则编译无法进行);
    Jenkins部署及持续集成、部署(CICD)_第2张图片
  5. 单击项目工程-立即构建-产生JAVA的WAR包;(自动化)
  6. 将网站代码WAR拷贝或者部署至远程服务器(手工方式实现);
  7. 将edu.war包批量部署到如下4台docker容器中:
    172.17.0.2
    172.17.0.3
    172.17.0.4
    172.17.0.5
ansible www-edu -m  copy -a "src=/root/www-edu/apache-tomcat-8.0.50.tar.gz dest=/root/"
ansible www-edu -m  copy -a "src=/root/www-edu/jdk1.8.0_131.tar.gz dest=/root/"
ansible www-edu -m shell -a "yum install -y tar gzip*"
ansible www-edu -m shell -a "cd /root;tar -xf apache-tomcat-8.0.50.tar.gz"
ansible www-edu -m shell -a "cd /root;tar -xf jdk1.8.0_131.tar.gz"
ansible www-edu -m shell -a "cd /root;mkdir -p /usr/java/;mv jdk1.8.0_131 /usr/java/;mv apache-tomcat-8.0.50 /usr/local/tomcat/"
ansible www-edu -m shell -a "sed -i '/JAVA_HOME/d;/CLASSPATH/d' /etc/profile"
ansible www-edu -m shell -a  "echo -e 'export JAVA_HOME=/usr/java/jdk1.8.0_131\nexport CLASSPATH=\$CLASSPATH:\$JAVA_HOME/lib:
\$JAVA_HOME/jre/lib' >>/etc/profile"
ansible www-edu -m shell -a  "rm -rf /usr/local/tomcat/webapps/*;mkdir /usr/local/tomcat/webapps/ROOT"
ansible www-edu -m copy -a "src=/root/.jenkins/workspace/www.jfedu.net/target/edu.war dest=/usr/local/tomcat/webapps/ROOT/"
ansible www-edu -m shell -a  "cd /usr/local/tomcat/webapps/ROOT;source /etc/profile ;\$JAVA_HOME/bin/jar -xf edu.war"
ansible www-edu -m shell -a  "source /etc/profile;set -m;/usr/local/tomcat/bin/shutdown.sh"
ansible www-edu -m shell -a  "source /etc/profile;sleep 2;set -m;/usr/local/tomcat/bin/startup.sh"

  1. 可以将脚本放到 post build 步骤中,自动部署。注:在自动部署的同时,切记要备份好之前的代码

回到目录

你可能感兴趣的:(jenkins,CICD,jenkins)