jenkins自动部署
博客专区 > fifadxj 的博客 > 博客详情
jenkins自动部署
fifadxj 发表于2年前
jenkins自动部署
  • 发表于 2年前
  • 阅读 152
  • 收藏 7
  • 点赞 1
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

假设:

  • 一台SVN服务器
  • 一台装了jboss的服务器
  • 一台服务器做自动部署

步骤:

动部署服务器上装jenkins

  • http://www.jenkins.io下载jenkins.war,放到自动部署服务器上~/ci/
  • 设置JENKINS_HOME,默认为~/jenkins/
  • 启动jenkins 
nohup java -jar jenkins.war --httpPort=8888 >> ~/ci/jenkins.log 2>&1 &

        可访问外网用在线方式:系统管理->管理插件->可选插件->安装SSH plugin

        内网用离线方式:下载 ssh.hpi http://updates.jenkins-ci.org/latest/ssh.hpi ,改名为ssh.jpi,放入$JENKINS_HOME/plugins/


  • 重启jenkins使插件生效 http://x.x.x.x:8888/restart,重启后在add post-build step中将可以看到remote ssh选项
  • 配置jenkins使用的jdk,maven,remote ssh等

配置jenkins服务器和java应用服务器之间的public key authentication ssh,用于免密码scp

  • 在jenkins服务器~目录下生成公私钥对
ssh-keygen -t rsa #生成公私钥对 ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub
  • 把jenkin服务器上生成的公钥~/.ssh/id_rsa.pub复制到java应用服务器的~/.ssh目录
  • 在java应用服务器上,把公钥加入可信列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 设置权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#chmod 600 ~/.ssh/id_rsa
  • 删了java应用服务器上的公钥

rm ~/.ssh/id_rsa.pub

配置jenkins job(这里是maven project)

  • SVN check out
  • maven build
clean install -Pdev -DskipTests=true
  • execute shell,把war包scp到应用服务器
scp ~/.m2/repository/com/demo/gateway/1.0.0/gateway-1.0.0.war app@172.17.140.11:/home/app/gateway.war
  • execute shell on remote host using ssh,ssh到应用服务器,部署并重启jboss服务器
home_path=/home/app
server_path=$home_path/servers/jboss
deploy_path=$server_path/standalone/deployments

cd $deploy_path
rm -rf gateway.war
mkdir gateway.war
cd gateway.war
cp $home_path/gateway.war ./
$JAVA_HOME/bin/jar xvf gateway.war
rm gateway.war

nohup $server_path/bin/xxx.sh stop > /dev/null 2>&1 &
sleep 5
nohup $server_path/bin/xxx.sh start > /dev/null 2>&1 &


现在,只要在jenkins上执行job就能进行自动部署了

共有 人打赏支持
粉丝 6
博文 21
码字总数 13978
×
fifadxj
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: