自动化部署jenkins

自己实现的一个自动化部署

1.在jenkins中,在系统配置中添加ssh

2.创建一个maven项目

3.选择相关信息

4.上传shell脚本到服务器

5.给shell脚本添加执行权限

6.启动构件

给shell脚本添加执行权限

在这里插入图片描述

调试过程的主要信息

正常情况:
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/jenkins_home/workspace/test_portal/pom.xml to com.itrus/portal/0.0.1-SNAPSHOT/portal-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving /var/jenkins_home/workspace/test_portal/target/portal.war to com.itrus/portal/0.0.1-SNAPSHOT/portal-0.0.1-SNAPSHOT.war
SSH: Connecting from host [76cfcbf03083]
SSH: Connecting with configuration [remote_test_server] ...
channel stopped
SSH: EXEC: STDOUT/STDERR from command [rm -rf /usr/local/apache-tomcat-8.5.31/webapps/portal
/usr/local/apache-tomcat-8.5.31/bin/restart.sh] ...
23345
===========shutdown================
========kill /usr/local/apache-tomcat-8.5.31 begin==============
23345
========kill /usr/local/apache-tomcat-8.5.31 end==============
===========startup==============
Tomcat started.
SSH: EXEC: completed after 2,802 ms
SSH: Disconnecting configuration [remote_test_server] ...
SSH: Transferred 1 file(s)
Finished: SUCCESS

错误情况:
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/jenkins_home/workspace/portal_20180910_to_124.205.224.179_9018/pom.xml to com.itrus/portal/0.0.1-SNAPSHOT/portal-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving /var/jenkins_home/workspace/portal_20180910_to_124.205.224.179_9018/target/portal.war to com.itrus/portal/0.0.1-SNAPSHOT/portal-0.0.1-SNAPSHOT.war
channel stopped
SSH: Connecting from host [76cfcbf03083]
SSH: Connecting with configuration [ixin_ceshiji_124.205.224.179_9017] ...
SSH: EXEC: STDOUT/STDERR from command [rm -rf /root/apache-tomcat-7.0.63/webapps/portal
/root/apache-tomcat-7.0.63/bin/restart179.sh] ...
bash: line 1: /root/apache-tomcat-7.0.63/bin/restart179.sh: Permission denied
SSH: EXEC: completed after 401 ms
SSH: Disconnecting configuration [ixin_ceshiji_124.205.224.179_9017] ...
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [126]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
Finished: UNSTABLE


root     25964     1  3 10:42 pts/0    00:04:37 /usr/local/jdk1.8/jre/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.31/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/apache-tomcat-8.5.31/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.31/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.31 -Dcatalina.home=/usr/local/apache-tomcat-8.5.31 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.31/temp org.apache.catalina.startup.Bootstrap start


root      9453     1 13 12:47 pts/2    00:03:45 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/root/apache-tomcat-7.0.63/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms2048m -Xmx5120m -XX:MaxPermSize=1024m -Dfile.encoding=GBK -Dsun.jnu.encoding=GBK -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dfile.encoding=UTF-8 -Djava.endorsed.dirs=/root/apache-tomcat-7.0.63/endorsed -classpath /root/apache-tomcat-7.0.63/bin/bootstrap.jar:/root/apache-tomcat-7.0.63/bin/tomcat-juli.jar -Dcatalina.base=/root/apache-tomcat-7.0.63 -Dcatalina.home=/root/apache-tomcat-7.0.63 -Djava.io.tmpdir=/root/apache-tomcat-7.0.63/temp org.apache.catalina.startup.Bootstrap start

### 实现 Jenkins 自动化部署的最佳实践 #### 一、准备阶段 为了确保 Jenkins 能够顺利执行自动化部署,前期准备工作至关重要。这包括但不限于安装必要的软件环境以及配置基础架构。 - **Java 环境搭建** 需要先确认目标机器已正确安装 JDK 版本[^3]。对于大多数 Linux 发行版而言,可以通过包管理器轻松完成此操作;而对于 Windows 或 macOS 用户,则建议访问 Oracle 官方网站下载适合版本并按照指引完成本地设置。 - **Jenkins 安装** 接下来,在选定的操作系统平台上依照官方文档指导完成 Jenkins 的安装过程[^1]。通常情况下,Linux 用户可以利用 `yum` 或者 `apt-get` 命令快速获取最新稳定版;而其他平台则可能需要手动下载 war 文件并通过命令行启动服务。 ```bash sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum install jenkins java-1.8.0-openjdk-devel sudo systemctl start jenkins ``` #### 二、初始化与安全配置 初次登录 Jenkins 后端界面时,默认会提示用户创建初始密码及管理员账户信息。务必妥善保管这些凭证资料,并根据实际需求调整全局安全性策略,比如启用认证机制、定义角色权限等措施来保障系统的整体安全性[^2]。 #### 三、构建任务设定 当一切就绪后,便可以在 Jenkins 中新建一个自由风格的项目用于承载待部署的应用程序源码库链接地址[^4]: - 进入“New Item”,输入项名称,选择“Freestyle project”。 - 在源码管理部分指定 Git 仓库 URL 和分支名(如果适用),同时提供具备读取权限的身份验证凭据。 - 设置触发条件——可以选择定时计划或是监听远程事件的方式激活流水线作业。 #### 四、集成持续测试环节 为了让每次变更都能得到充分检验,应当把各类形式的测试纳入到 CI/CD 流水线当中去。每当开发者推送新的改动至共享代码库之后,即刻触发一系列预设好的脚本来评估质量状况,从而尽早发现潜在缺陷所在之处[^5]。 ```groovy pipeline { agent any stages { stage('Build') { ... } stage('Test'){ steps{ sh 'pytest tests/unit' sh 'pytest tests/integration' } } stage('Deploy'){...} } post { always { junit '**/target/surefire-reports/*.xml' } } } ``` 通过上述四个主要步骤,即可建立起一套较为完善的基于 Jenkins 平台之上的自动化部署解决方案框架。当然,随着业务复杂度的增长和技术栈的变化,这套方案也应随之不断优化迭代。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值