使用Jenkins部署本地项目到Linux服务器
由于测试服务器限制了root账号登录,而其他账号的权限又很少,所以先用普通账号登录,然后使用命令切换到root账号
一、本地Jenkins服务配置
1、安装Jenkins
2、安装 Publish over SSH插件
3、进入【Manage Jenkins】->【Configure System】,配置Publish over SSH信息,新增SSH Server 填写远程部署服务器的信息。填写完后可点击Test Configuration测试能否正确连接服务器。
4、保存完后,选择【New Item】,选择项目类型FreeStyle project,填写名称,进行下一步配置。
5、Source Code Management选择None
6、Build下,新增Send files or execute commands over SSH (传输文件到服务器,并执行命令) ,选择之前建好的SSH Server的名字,Transfer Set配置如下图:
Source files:需要上传的文件路径,以jenkins的根目录为基准(根目录可在Config System配置里查看),本地打好包放到此路径
Remove prefix:需要去掉的前缀(如果需要上传到服务器指定位置,可以把source files的部分路径去掉,只留下文件)
Remote directory:上传到远程服务器的路径,以配置的SSH Server的Remote directory为基准。
Exec command:需要执行的命令。
二、远程服务器相关配置
1、安装expect应用:yml install expect
2、将待执行的脚本文件放到普通用户的根目录下
3、切换到root账号并执行命令的脚本文件changUser.sh内容如下:
spawn su - root
expect "密码:"
send "12345678\n"
send "pwd\n"
send "cd /home/test\n"
send "cp test.zip /opt/applications\n" #将文件放置到对应目录
send "rm -rf test.zip\n" #删除普通用户根目录下的文件
send "sh ./restart.sh\n" #执行启动项目的bash 脚本
expect eof