Linux rsync+jenkins实现服务自动部署详解教程

在现代软件开发中,自动化部署是提高效率和减少人为错误的重要手段。rsync 结合 Jenkins 是一种流行的自动化部署方案,可以实现代码的自动同步和应用的持续集成。以下是使用 rsyncJenkins 实现服务自动部署的全流程:

1. 服务器安装配置 rsync

首先,确保所有服务器上都安装了 rsync。在 CentOS 7 环境中,可以通过以下命令安装:

yum -y install rsync

2. 被控端(业务节点服务器)配置 rsync

在被控端服务器上,创建 /etc/rsync.pass 文件并配置相应的权限和同步模块:

touch /etc/rsync.pass

编辑 /etc/rsync.pass 文件,设置允许访问的用户、路径等:

uid = root
gid = root
port = 873
use chroot = no
read only = no
list = no
timeout = 600
auth users = xx
hosts allow = 10.8.11.240
hosts deny = 0.0.0.0/32
[hello-world]
path = /data/spring/hello-world
comment = hello-world

启动 rsync 守护进程:

rsync --daemon

3. 主控端(Jenkins服务器)配置 rsync

在主控端服务器上,创建认证文件 /etc/passwd.txt

touch /etc/passwd.txt && echo admin@789 > /etc/passwd.txt

修改文件权限:

chmod 600 /etc/passwd.txt

4. 验证文件同步功能

在主控端执行文件同步命令:

rsync -avz activity-annual.jar xx@10.8.11.248::activity-annual --password-file=/etc/passwd.txt

5. 配置 Jenkins 自动部署

在 Jenkins 中创建一个新的 Job,并配置源码管理、构建触发器和构建步骤。

5.1 创建 Job

在 Jenkins Web 界面,创建一个新的 Job,选择“构建一个自由风格的软件项目”。

5.2 配置源码管理

配置 Git 仓库地址,并添加认证信息。

5.3 配置构建触发器

选择适合的触发方式,如定时构建或 Webhook。

5.4 配置构建步骤

在“构建”部分,选择“执行 shell”,并添加以下脚本:

echo ${WORKSPACE}
echo ${JOB_NAME}
context_name=hello-world
wget ${backend_package_url} -O ${context_name}.tar.gz
tar -zxvf ${context_name}.tar.gz
mv ${WORKSPACE}/target/*.jar ${context_name}.jar
chmod -R o+g ${context_name}.jar
jar=${context_name}.jar
TIMESTAMP=`date +%Y%m%d_%H%M`
ansible 10.8.11.248 -m shell -a "sh /root/spring_add.sh ${context_name}"
ansible 10.8.11.249 -m shell -a "sh /root/system_add.sh ${context_name}"
rsync -avz ${jar} xx@10.8.11.248::${context_name} --password-file=/etc/passwd.txt
rsync -avz ${jar} xx@10.8.11.249::${context_name} --password-file=/etc/passwd.txt
sleep 10
ansible 10.8.11.248 -m systemd -a "name=${context_name} state=restarted"
ansible 10.8.11.249 -m systemd -a "name=${context_name} state=restarted"

6. 构建与部署

点击“Build with Parameters”,输入必要的参数,如后端包下载地址,然后点击“Build”按钮,Jenkins 将自动执行打包和部署流程。

通过以上步骤,可以实现从代码提交到自动部署的全流程自动化,大大提高了部署效率和减少了人为错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值