Jenkins
CI(持续集成)/CD(持续交付/部署)
CI/CD 既可能仅指持续集成和持续交付构成的关联环节,也可以指持续集成、持续交付和持续部署这三项构成的关联环节。更为复杂的是,有时“持续交付”也包含了持续部署流程。
只需记得 CI/CD 其实就是一个流程(通常形象地表述为管道),用于实现应用开发中的高度持续自动化和持续监控
CI / CD的采用改变了开发人员和测试人员如何发布软件
互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:
编码 --> 构建 --> 集成 --> 测试 --> 交付 --> 部署
持续集成的重点是将各个开发人员的工作集合到一个代码仓库中。通常,每天都要进行几次,主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。
持续交付的目的是最小化部署或释放过程中固有的摩擦。它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。
持续部署是一种更高程度的自动化,无论何时对代码进行重大更改,都会自动进行构建/部署。
jenkins是什么?
Jenkins 是一个可扩展的持续集成引擎。
主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。
Jenkins拥有的特性包括:
易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
易于配置-所有配置都是通过其提供的web界面实现。
集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
生成JUnit/TestNG测试报告。
分布式构建支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
使用jenkins进行Java代码打包与发布案列
eclipse打包工具
gradler
ant
maven
注意:jenkins是一个流程化工具
部署jenkins
#关闭防火墙和selinux
[root@RS2 ~]# systemctl disable --now firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@RS2 ~]# vim /etc/selinux/config
[root@RS2 ~]# setenforce 0
[root@RS2 ~]# yum -y install java-17-openjdk*
[root@RS2 ~]# wget https://get.jenkins.io/war-stable/2.303.2/jenkins.war
[root@RS2 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
[root@RS2 ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.54.tar.gz jenkins.war
[root@RS2 ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/
[root@RS2 ~]# cd /usr/local/
[root@RS2 local]# ls
apache-tomcat-9.0.54 etc include lib64 sbin src
bin games lib libexec share
[root@RS2 local]# mv apache-tomcat-9.0.54/ jenkins
[root@RS2 local]# ls
bin games jenkins lib64 sbin src
etc include lib libexec share
[root@RS2 jenkins]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@RS2 jenkins]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 *:8080 *:*
#测试下是否能进去
#继续部署
[root@RS2 jenkins]# cd webapps/
[root@RS2 webapps]# ls
docs examples host-manager manager ROOT
[root@RS2 webapps]# rm -rf docs examples host-manager manager
[root@RS2 webapps]# ls
ROOT
[root@RS2 webapps]# cp ~/jenkins.war .
[root@RS2 webapps]# ls
jenkins.war ROOT
#过20秒再查看会自动解压
[root@RS2 webapps]# ls
jenkins jenkins.war ROOT
#看查密码
[root@RS2 webapps]# cat /root/.jenkins/secrets/initialAdminPassword
1aa5fc60d76744e48f07cb4ace827748