SSH 执行
SSH Exec 使 TeamCity 能够使用 SSH 执行任意远程命令。
所有运行器的通用设置在 这里 描述。 此文章详述了 SSH Exec 运行器的设置。
以下字段支持 参数引用 :任何在百分号之间的文本(%
)都被 TeamCity 视为对属性的引用。 为了防止 TeamCity 将百分号内的文本视为属性的引用,使用两个百分号来转义它们:例如,如果您想要将 %Y%m%d%H%M%S
传递到构建中,请将其改为 %\%Y%\%m%\%d%\%H%\%M%\%S
。
tip
观看我们的 视频指南 ,了解如何在构建过程中 使用 SSH。
warning
当服务器需要强大的加密技术时,构建代理需要在 JRE 上安装 Java Cryptography Extension (JCE) 无限强度管辖策略。
选项 | 描述 |
---|---|
步骤名称 | Optional 在 TeamCity 用户界面中显示的构建步骤的名称。 |
步骤 ID | 此构建步骤的 ID,必须在此配置的所有步骤中唯一。 用于URLs、REST API、DSL、向服务器的HTTP请求,以及TeamCity数据目录中的配置设置。 |
执行步骤 | 使您能够修改默认的构建条件,并可选择性地添加更多的 构建条件。 |
部署目标 | |
目标 | SSH 服务器的主机名或 IP 地址。 |
端口 | 可选 端口。 默认端口为22。 |
使用 pty | Optional 请指定伪终端(pty)的类型。 例如, 如果为空,那么 pty 不会被分配(默认)。 |
部署凭据 | |
认证方法 | 选择一种身份验证方法:
|
SSH 命令 | |
命令 | 在远程 shell 中指定一个新的、以换行符分隔的命令集来执行。 远程 shell 在经过认证的用户的主目录中启动。 Shell 输出将在 TeamCity 构建日志中可用。
|
例如,考虑如何创建一个构建步骤,为网站构建静态内容。 在将静态内容上传到网页服务器后,您需要执行一个 deploy.sh
脚本以刷新网站。 假设您在 SSH 服务器上使用 jdoe
帐户,其主目录为 /jdoe
,并且 SSH 服务器已配置为使用 SSH 密钥进行身份验证。
按照 Generated SSH Keys 中的步骤在您的项目中生成一对新的 SSH 密钥。 调用密钥对
WebServerKey
。从
WebServerKey
密钥对中复制公钥。登录到您的 SSH 服务器上的
jdoe
帐户,并按照您的 SSH 服务器提供商的指导将WebServerKey
公钥添加到此帐户。在项目的构建配置中,转到 构建步骤 页面并单击 添加构建步骤。
在 新建构建步骤 页面上,选择 SSH 执行 运行器。
在 新构建步骤:SSH Exec 页面上,按如下填写字段:
步骤名称 — 输入
RunDeployScript
。目标 — 输入
ssh.example.com
。认证方法 — 选择 已上传密钥。
用户名 — 输入
jdoe
(SSH 服务器账户的用户名)。选择密钥 — 从下拉列表中选择
WebServerKey
。命令 — 输入以下 shell 命令:
echo 'running deploy.sh ...' /home/jdoe/scripts/deploy.sh
单击 保存 以创建构建步骤。
Thanks for your feedback!