# SSHStepRun **Repository Path**: anxin1225/sshstep-run ## Basic Information - **Project Name**: SSHStepRun - **Description**: Windows一键发布服务至Linux服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-11 - **Last Updated**: 2022-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSH Step Run 可以预先配置好相关步骤,然后按照步骤依次执行。写这个工具的目的,其实,是希望从Windows发布项目到Linux能够更方便一些。 举个例子,其实很多编译的语言的项目都是可以进行交叉编译的。比如说.net core可以直接编译Linux项目。我们可以,通过dotnet publish命令本地编译程序。然后将publish的文件直接打包成zip包,然后上传到Linux系统中。再通过Linux系统命令,将对应的包打包成docker镜像,然后启动服务即可。 实现上述需求,其实只需要通过本软件加载以下配置(**sshsteprun step.yaml**)即可轻松完成。 step.yaml ``` parameter: UserName: root PassWord: password RemoteServer: xxx.xxx.xxx.xxxx:22 RemoteCurrentDir: /root/document/build/test/ step: - name: LocalShell parameter: CMD: D:\build\xxxx\ZBuild.bat - name: UploadFolder parameter: LocalDir: D:\build\xxxx\Upload RemoteDir: /root/document/build/test - name: RemoteShell parameter: CMD: unzip publish.zip - name: RemoteShell parameter: CMD: rm -rf publish.zip - name: RemoteShell parameter: CMD: docker build . -t xxxx - name: RemoteShell parameter: CMD: docker rm -f xxxx - name: RemoteShell parameter: CMD: docker run -itd --name=xxxx xxxx ``` 在解释具体内容之前,先简单解释一下,软件是怎么工作的。 我们创建了一个个的步骤,每一个步骤,由一个插件来执行具体步骤。插件具体要执行什么内容,有插件的参数来控制。当然有些参数多个插件都要使用可以使用全局参数,如果全局参数并不是你想要的参数,可以在插件参数中覆盖全局参数。 有了以上背景之后,我们来简单看一下配置的格式。 parameter 代表参数,是个字典,Key是插件的参数,Value则是参数具体的值 step 则代表步骤,具体依次执行,如果步骤出错了,则会终止后续步骤 step.name 代表步骤名称,用来标识具体使用哪个组件 ## 都存在哪些组件 ### UploadFile 上传文件,可以将本地的某一个文件上传到远程的某一个位置,如果已经存在该文件则会覆盖。 #### 需要的参数 ``` RemoteServer 远程服务器 UserName 用户名 PassWord 密码 RemotePath 文件远程路径 LocalPath 本地文件路径 ``` ### UploadFolder 上传文件夹,会将远程的某一个文件夹,完全替换成本地的文件夹。 #### 需要的参数 ``` RemoteServer 远程服务器 UserName 用户名 PassWord 密码 RemoteDir 文件远程路径 LocalDir 本地文件路径 ``` ### RemoteShell 远程执行命令 #### 需要的参数 ``` RemoteServer 远程服务器 UserName 用户名 PassWord 密码 CMD 要执行的命令 RemoteCurrentDir 远程命令的当前目录 ``` ### LocalShell 执行本地命令 #### 需要的参数 ``` CMD 要执行的命令 ``` 快去愉快的玩耍吧。