Jenkins 是一款持续集成工具,它可以做的事情很多,其中一个主要的功能就是简化部署流程
- 传统的发布流程
- 本地把把项目打包
- 通过FTP等工具,传输到服务器
- 关闭tomcat,备份项目包,然后将新上传的包放到webapp目录下
- 启动tomcat
- Jenkis的发布流程
- 用户在Jenkis上点击某个按钮
- Jenkis收到发布命令
- Jenkis从svn上把源代码download下来
- Jenkis根据你设置的mvn命令打包
- Jenkis把你打包好的war传输到远程的tomcat的webapps目录下
- tomcat启动
一、安装Jenkis
- 到官网下载Jenkis的war包,其官网下载地址为:http://mirrors.jenkins.io/war/latest/jenkins.war
- 将war包copy到tomcat的webapp目录下
- 需要设置JENKINS_HOME,否则windows系统会安在C盘,liunx会安装在/root/.jenkis下
- tomcat和jdk和传统的方式一样
- 启动tomcat服务器
- 访问Jenkins
- 浏览器输入:http://127.0.0.1:8080/jenkis,进入Jenkis访问页面
- 首先是输入初始密码,这个有提示,跟着提示找到文件,找到密码,输入即可
- 安装推荐的插件
二、安装插件
- 安装Maven插件
- 点击系统管理-->管理插件-->可选插件
- 查找Maven Integration plugin 插件
- 直接安装
- 安装svn插件
- 点击系统管理-->管理插件-->可选插
- 查找Subversion Plug-in插件
- 直接安装
三、创建构建项目
- 全局工具配置
- 点击系统管理-->全局工具配置-->配置jdk、maven配置
- 构建一个maven项目
- 添加源码下载路径
- 添加maven打包设置
- 打包完成后执行shell命令,将打包好的war包copy到远程服务器,并执行远程服务器的的shell脚本
- scp为传输文件命令,ssh是远程登录命令,都需要免秘钥登录
- 脚本jenkins内容为:
tomcat_home=/usr/local/tomcat tomcat=`ps -ef|grep tomcat|grep -v 'grep'|awk '{print $2}'`; echo ${tomcat} if test -z ${tomcat} then echo "tomcat 没有启动" else echo "准备结束tomcat进程..." sh ${tomcat_home}/bin/shutdown.sh sleep 5 kill -9 ${tomcat} echo "tomcat 进程已经结束" fi ##备份war包 mkdir ${tomcat_home}/bak mv ${tomcat_home}/webapps/hb.war ${tomcat_home}/bak/hb.war-$(date "+%Y%m%d-%H%M%S") ##发布war包 rm -rf ${tomcat_home}/webapps/hb* cp -r /root/hb.war ${tomcat_home}/webapps/ ##启动tomcat sh ${tomcat_home}/bin/startup.sh echo "启动tomcat完成"
Linux之间配置SSH互信(SSH免密码登录)
为简化SSH过程,采用证书方式,免去SSH登入时需要输入账号密码的过程,具体操作如下:
一、在SSH服务器所在机器上
1、以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注释
RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
2、重启SSH服务
[root@server /]#systemctl restart sshd //重启ssh服务
二、在客户端机器上
1、生成公钥私钥对
[root@client /]#ssh-keygen -t rsa
一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub
2、把id_rsa.pub发送到服务端机器上
[root@client /]#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.20 #server ip
3、验证
[root@client /]#ssh 192.168.1.20 #server ip