远程自动部署

本文介绍如何在Jenkins中配置脚本,实现自动化编译后部署Ubuntu服务器的应用,包括使用sshpass工具传输文件和执行命令,以及如何在新LISP环境中运行启动命令。同时提供了解决部署过程中可能遇到的问题的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面这段是用在Jenkins 自动编译完成后的脚本:

添加到Build->Execute Shell中,

sshpass -p pwd ssh -t root@192.168.1.55 'service my_web stop'
sshpass -p pwd scp bin/my_web root@192.168.1.55:/home/dist/web/
sshpass -p pwd ssh -t root@192.168.1.55 'service my_web start' &


这样就可以了。

远程机器也是Ubuntu, IP: 192.168.1.55, 并且已经设定好了/etc/init.d/my_web脚本,以及约定了要将程序拷贝到/home/dist/web目录下。

密码也已经设定。

Jenkins 机器上要安装sshpass, 并且首先尝试一次,按下yes建才行。sshpass可以传递密码,-t 参数是模拟键盘输入。

这段脚本最后用& 结束,否则Jenkins build会挂住。


如果在newLISP中运行启动命令,newLISP会被挂住,解决方法是让stdout输出到空设备:http://stackoverflow.com/questions/10508843/what-is-dev-null-21

比如:

   (println (exec "sshpass -p '123456' ssh root@ip1 'service wind_tunnel start' >> /dev/null 2>&1 &"))       


这是个简易的方法,如果部署需要控制更多的信息,还是应该像Google一样,有一个专门的web server负责部署。程序只需要将要部署的二进制程序和配置上传即可。

实现Git项目的远程自动部署可以通过多种方法完成,以下是一种常见的方法,使用Git钩子(hooks)和SSH来实现自动部署: ### 步骤一:配置服务器 1. **安装Git**:确保你的服务器上已经安装了Git。 ```bash sudo apt-get update sudo apt-get install git ``` 2. **创建部署用户**:为了安全起见,建议创建一个专用的部署用户。 ```bash sudo adduser deploy ``` 3. **设置SSH密钥**:在本地机器上生成SSH密钥,并将公钥添加到服务器的`~/.ssh/authorized_keys`文件中。 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh-copy-id deploy@your_server_ip ``` ### 步骤二:配置Git仓库 1. **在服务器上创建裸仓库**:裸仓库不包含工作目录,适合作为远程仓库。 ```bash mkdir /home/deploy/myproject.git cd /home/deploy/myproject.git git init --bare ``` 2. **设置钩子**:在裸仓库中创建一个`post-receive`钩子,当有新代码推送时触发自动部署。 ```bash nano /home/deploy/myproject.git/hooks/post-receive ``` 在文件中添加以下内容: ```bash #!/bin/bash GIT_WORK_TREE=/home/deploy/myproject git checkout -f ``` 保存并退出编辑器,然后赋予执行权限: ```bash chmod +x /home/deploy/myproject.git/hooks/post-receive ``` 3. **创建工作目录**:在服务器上创建实际的工作目录,并将代码检出到该目录。 ```bash mkdir /home/deploy/myproject chown -R deploy:deploy /home/deploy/myproject ``` ### 步骤三:配置本地仓库 1. **添加远程仓库**:在本地项目的Git配置中添加远程仓库。 ```bash git remote add production ssh://deploy@your_server_ip/home/deploy/myproject.git ``` 2. **推送代码**:将代码推送到远程仓库。 ```bash git push production master ``` ### 步骤四:自动部署 1. **安装必要的依赖**:在服务器上进入工作目录,安装项目所需的依赖。 ```bash cd /home/deploy/myproject npm install ``` 2. **配置启动脚本**:根据项目需求,配置启动脚本,例如使用PM2管理Node.js应用。 ```bash npm install -g pm2 pm2 start app.js ``` 通过以上步骤,你就可以实现Git项目的远程自动部署。每次向远程仓库推送代码时,`post-receive`钩子会自动将代码检出到工作目录,并启动或重启应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值