跳到主要内容

SSH command

Learn how to add and configure the "SSH Command" action in your Buddy pipeline

SSH command (Password)

POST参数

名称类型描述
name
必填
String操作名称
type
必填
StringThe type of the action. Should be set to SSH_COMMAND.
authentication_mode
必填
StringThe authentication mode for SSH. Should be set to PASS.
commands
必填
StringThe array of commands invoked on the remote server.
host
必填
StringThe host for the connection.
login
必填
StringThe username required to connect to the server.
password
必填
StringThe password required to connect to the server.
port
必填
StringThe port for the connection.
run_as_scriptBooleanIf set to true, commands are executed as a regular script. If set to false, the commands will be executed one by one, in non-interactive mode.
shellStringThe name of the shell that will be used to execute commands. Can be one of SH (default) or BASH.
working_directoryStringThe absolute or relative path on the remote server.
execute_every_commandBooleanIf set to true all commands will be executed regardless of the result of the previous command.

示例

请求

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"authentication_mode": "PASS",
"host": "localhost",
"port": "22",
"login": "api_tests_user",
"password": "api_tests_password",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"commands": [
"npm prune",
"npm install --silent"
]
}

示例响应

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/2/edit",
"id": 2,
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"last_execution_status": "INITIAL",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"login": "root",
"host": "localhost",
"port": "22",
"authentication_mode": "PASS",
"commands": [
"npm prune",
"npm install --silent"
],
"pipeline": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Live mirror",
"on": "CLICK",
"refs": [
"refs/heads/master"
],
"last_execution_status": "SUCCESSFUL",
"last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
}
}

SSH command (Private key)

POST参数

名称类型描述
name
必填
String操作名称
type
必填
StringThe type of the action. Should be set to SSH_COMMAND.
authentication_mode
必填
StringThe authentication mode for SSH. Should be set to PRIVATE_KEY.
commands
必填
String[]The array of commands invoked on the remote server.
host
必填
StringThe host for the connection.
login
必填
StringThe username required to connect to the server.
port
必填
StringThe port for the connection.
server_key
必填
StringThe private SSH key.
passphraseStringThe passphrase for the private SSH key.
run_as_scriptBooleanIf set to true, commands are executed as a regular script. If set to false, the commands will be executed one by one, in non-interactive mode.
shellStringThe name of the shell that will be used to execute commands. Can be one of SH (default) or BASH.
working_directoryStringThe absolute or relative path on the remote server.
execute_every_commandBooleanIf set to true all commands will be executed regardless of the result of the previous command.

示例

请求

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"authentication_mode": "PRIVATE_KEY",
"host": "localhost",
"port": "22",
"login": "api_tests_user",
"passphrase": "api_tests_password",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"commands": [
"npm prune",
"npm install --silent"
],
"server_key": "-----BEGIN RSA PRIVATE KEY-----\r\nProc-Type: 4,ENCRYPTED\r\nDEK-Info: DES-EDE3-CBC,688DBB59CFC83D58\r\n\r\n1m3qZGEqXEfLPIm9KZacr17/iMVOIJcvSLoMJueM8+QbcK4JStzbre2AN99TkCN/\r\nr1V12deiq/lJUPX07K30tnsTS+7z4Pq/D2WhirD+WQcREgdQU1A8dlx2NMRDi7d0\r\n32w8ZPlciz3bc5rpF0vy5Ll2q9TWye4fpgQwPUnEkam0SaRRwAMpnT/46/AeWgmn\r\n9nu8CNZp7QcOIR2WH6RNRhQTOD/hC+kVCxbEQUL5MOHV7iZX6BeUwd8bBNmci+o0\r\nz/I7ZLQo596Ih+0KPgA+vwS9c4c1TrUYhupU7tyIL6PwpAzhlq/UwxeE032AypiI\r\nkpm7z8I7MBYZs0bsS5UOa3FdHF8p38KrxozwQfsOmBxEHpAWM3slvqJpauuJLlyx\r\ncFfzgOTFSsLJ5J59ZdVRpeFr/W5+/9wpc+AJUP80i4pMEWsnamwdK9rU6QwpFiPf\r\nARzk6VdIiDlZRWeyoYcEfOGEJt+J0aSlXkt6BHgvkmDGq0YA9CNqb6GdB9t073yX\r\nCAqsQ/XEvDuZw14KHxErr5aL6uuZiioDhUmoGz9S3HstFR4T0nRmfCSrLyxTFQf1\r\nF0Sn9Dv4LrSGrzM/0svdlqUc5TDxPBVoW2Q56dNkAQwJg0k25x5YLdTUcd4GjbJW\r\n0qLJaO+bxfTDk5rCMHflYNCW18fEdeEvpBwL0ey93+Qya4xqjTOy2fgoz9U0QLUD\r\nfbgWSiFWnurC8I/SYcQUAEOKiYCDRzud92WzyjwRr2yPlcqf/Qi8+VNDyvoGYZgi\r\nD3vgqA9KPKnYkODYKIFTMW0bbRkgnLOsc1v5mkPTerUpeOGWPysOu3WV9if9e2lG\r\npG1gVfRJQei0k5Mex6CCV0gSQbf2MjswiyDvrPQ1yhpCsFeDAGKcLx+GU1/AhLRP\r\np32mqF5XJrMSTvifCGNOHkBMVUXmTjF7KCYZvcsERi1i2xNcwtcsLRm+QJKQsYQf\r\nhJ17/lOOcC8cqVLGmik3adOcOMCWq2b+NjgoJT55Hc0N07ikuQqazhFpZKkMFZEr\r\nFqbDZ2zGMwODjcDancXaghSS7ciIEdoAPGor1rftJ+l2oQVzBPk4pNfBKHJC7UmS\r\nUOGW3rGLSlRQcVEBFHbrsGP/JKXd06Cbrc3kDrdXbO430qRZh9LQQKbjvxHonU8Z\r\nXFeRpwG32YLSCSQunJtoEWQRJpVefc7rEmBAdLfNyA7xyqH2JLtlflaH9QApl7vE\r\nGNJJ5iuHCHPJwfhlaSMBF/Cb9Ofp4BM5fnNKrwaI9twv//U6XhVfYRcaKhCFEoMb\r\nYo4k7cKTQzL95xT1aYnwqSqtaDfoXASoA9j/mD0aMU+9zQEa0tVbJ/6Zjn3vMSTx\r\npvCYkXy9kZzEJZ2r7BiaQX0HX5Ki/Opt4eTWL5NbokDsE1bQu+D2BskJz30pRRRK\r\nvRargCRNl26158HNRLPkbo/gkwfJbfIBFgJ8YEQkcNap110oEaW6l3lnktZ0Ct3P\r\nEjkrppoV6UU1HCVmcoljOldTXQZuKmpz7aIuSwmUqoU4vWNvYteIZ3BhaVwCu/p8\r\nVaFL8Sapda0WYXPWXHuV+Dj295bedJxeqraWrQB87vKP4NVyzWv1WA==\r\n-----END RSA PRIVATE KEY-----\r\n"
}

示例响应

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/2/edit",
"id": 2,
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"last_execution_status": "INITIAL",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"login": "root",
"host": "localhost",
"port": "22",
"authentication_mode": "PRIVATE_KEY",
"commands": [
"npm prune",
"npm install --silent"
],
"pipeline": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Live mirror",
"on": "CLICK",
"refs": [
"refs/heads/master"
],
"last_execution_status": "SUCCESSFUL",
"last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
}

SSH command (Private key & password)

POST参数

名称类型描述
name
必填
String操作名称
type
必填
StringThe type of the action. Should be set to SSH_COMMAND.
authentication_mode
必填
StringThe authentication mode for SSH. Should be set to PRIVATE_KEY_AND_PASS.
commands
必填
String[]The array of commands invoked on the remote server.
host
必填
StringThe host for the connection.
login
必填
StringThe username required to connect to the server.
password
必填
StringThe password required to connect to the server.
port
必填
StringThe port for the connection.
server_key
必填
StringThe private SSH key.
passphraseStringThe passphrase for the private SSH key.
run_as_scriptBooleanIf set to true, commands are executed as a regular script. If set to false, the commands will be executed one by one, in non-interactive mode.
shellStringThe name of the shell that will be used to execute commands. Can be one of SH (default) or BASH.
working_directoryStringThe absolute or relative path on the remote server.
execute_every_commandBooleanIf set to true all commands will be executed regardless of the result of the previous command.

示例

请求

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"authentication_mode": "PRIVATE_KEY_AND_PASS",
"host": "localhost",
"port": "22",
"login": "api_tests_user",
"passphrase": "api_tests_password",
"password": "testtest",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"commands": [
"npm prune",
"npm install --silent"
],
"server_key": "-----BEGIN RSA PRIVATE KEY-----\r\nProc-Type: 4,ENCRYPTED\r\nDEK-Info: DES-EDE3-CBC,688DBB59CFC83D58\r\n\r\n1m3qZGEqXEfLPIm9KZacr17/iMVOIJcvSLoMJueM8+QbcK4JStzbre2AN99TkCN/\r\nr1V12deiq/lJUPX07K30tnsTS+7z4Pq/D2WhirD+WQcREgdQU1A8dlx2NMRDi7d0\r\n32w8ZPlciz3bc5rpF0vy5Ll2q9TWye4fpgQwPUnEkam0SaRRwAMpnT/46/AeWgmn\r\n9nu8CNZp7QcOIR2WH6RNRhQTOD/hC+kVCxbEQUL5MOHV7iZX6BeUwd8bBNmci+o0\r\nz/I7ZLQo596Ih+0KPgA+vwS9c4c1TrUYhupU7tyIL6PwpAzhlq/UwxeE032AypiI\r\nkpm7z8I7MBYZs0bsS5UOa3FdHF8p38KrxozwQfsOmBxEHpAWM3slvqJpauuJLlyx\r\ncFfzgOTFSsLJ5J59ZdVRpeFr/W5+/9wpc+AJUP80i4pMEWsnamwdK9rU6QwpFiPf\r\nARzk6VdIiDlZRWeyoYcEfOGEJt+J0aSlXkt6BHgvkmDGq0YA9CNqb6GdB9t073yX\r\nCAqsQ/XEvDuZw14KHxErr5aL6uuZiioDhUmoGz9S3HstFR4T0nRmfCSrLyxTFQf1\r\nF0Sn9Dv4LrSGrzM/0svdlqUc5TDxPBVoW2Q56dNkAQwJg0k25x5YLdTUcd4GjbJW\r\n0qLJaO+bxfTDk5rCMHflYNCW18fEdeEvpBwL0ey93+Qya4xqjTOy2fgoz9U0QLUD\r\nfbgWSiFWnurC8I/SYcQUAEOKiYCDRzud92WzyjwRr2yPlcqf/Qi8+VNDyvoGYZgi\r\nD3vgqA9KPKnYkODYKIFTMW0bbRkgnLOsc1v5mkPTerUpeOGWPysOu3WV9if9e2lG\r\npG1gVfRJQei0k5Mex6CCV0gSQbf2MjswiyDvrPQ1yhpCsFeDAGKcLx+GU1/AhLRP\r\np32mqF5XJrMSTvifCGNOHkBMVUXmTjF7KCYZvcsERi1i2xNcwtcsLRm+QJKQsYQf\r\nhJ17/lOOcC8cqVLGmik3adOcOMCWq2b+NjgoJT55Hc0N07ikuQqazhFpZKkMFZEr\r\nFqbDZ2zGMwODjcDancXaghSS7ciIEdoAPGor1rftJ+l2oQVzBPk4pNfBKHJC7UmS\r\nUOGW3rGLSlRQcVEBFHbrsGP/JKXd06Cbrc3kDrdXbO430qRZh9LQQKbjvxHonU8Z\r\nXFeRpwG32YLSCSQunJtoEWQRJpVefc7rEmBAdLfNyA7xyqH2JLtlflaH9QApl7vE\r\nGNJJ5iuHCHPJwfhlaSMBF/Cb9Ofp4BM5fnNKrwaI9twv//U6XhVfYRcaKhCFEoMb\r\nYo4k7cKTQzL95xT1aYnwqSqtaDfoXASoA9j/mD0aMU+9zQEa0tVbJ/6Zjn3vMSTx\r\npvCYkXy9kZzEJZ2r7BiaQX0HX5Ki/Opt4eTWL5NbokDsE1bQu+D2BskJz30pRRRK\r\nvRargCRNl26158HNRLPkbo/gkwfJbfIBFgJ8YEQkcNap110oEaW6l3lnktZ0Ct3P\r\nEjkrppoV6UU1HCVmcoljOldTXQZuKmpz7aIuSwmUqoU4vWNvYteIZ3BhaVwCu/p8\r\nVaFL8Sapda0WYXPWXHuV+Dj295bedJxeqraWrQB87vKP4NVyzWv1WA==\r\n-----END RSA PRIVATE KEY-----\r\n"
}

示例响应

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/858",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/858/edit",
"id": 858,
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"last_execution_status": "INITIAL",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"login": "root",
"host": "localhost",
"port": "22",
"authentication_mode": "PRIVATE_KEY_AND_PASS",
"commands": [
"npm prune",
"npm install --silent"
],
"pipeline": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Live mirror",
"on": "CLICK",
"refs": [
"refs/heads/master"
],
"last_execution_status": "SUCCESSFUL",
"last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
}
}

SSH command (Private key from environment variables)

POST参数

名称类型描述
name
必填
String操作名称
type
必填
StringThe type of the action. Should be set to SSH_COMMAND.
authentication_mode
必填
StringThe authentication mode for SSH. Should be set to ENV_KEY.
commands
必填
String[]The array of commands invoked on the remote server.
host
必填
StringThe host for the connection.
login
必填
StringThe username required to connect to the server.
password
必填
StringThe password required to connect to the server.
port
必填
StringThe port for the connection.
env_key
必填
StringThe private SSH key name defined in environment variables.
passphraseStringThe passphrase for the private SSH key.
run_as_scriptBooleanIf set to true, commands are executed as a regular script. If set to false, the commands will be executed one by one, in non-interactive mode.
shellStringThe name of the shell that will be used to execute commands. Can be one of SH (default) or BASH.
working_directoryStringThe absolute or relative path on the remote server.
execute_every_commandBooleanIf set to true all commands will be executed regardless of the result of the previous command.

示例

请求

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"authentication_mode": "ENV_KEY",
"host": "localhost",
"port": "22",
"login": "api_tests_user",
"passphrase": "api_tests_password",
"password": "testtest",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"commands": [
"npm prune",
"npm install --silent"
],
"env_key": "MyKey"
}

示例响应

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/858",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/858/edit",
"id": 858,
"name": "Execute commands on localhost",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"last_execution_status": "INITIAL",
"working_directory": "/",
"shell": "SH",
"run_as_script": true,
"ignore_errors": true,
"login": "root",
"host": "localhost",
"port": "22",
"authentication_mode": "ENV_KEY",
"env_key": "MyKey",
"commands": [
"npm prune",
"npm install --silent"
],
"pipeline": {
"url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
"html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
"id": 2,
"name": "Live mirror",
"on": "CLICK",
"refs": [
"refs/heads/master"
],
"last_execution_status": "SUCCESSFUL",
"last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
}
}

Proxy

To define a proxy server, use the following parameters:

名称类型描述
proxy_loginStringThe username required to connect to the proxy server.
proxy_hostStringThe host for the proxy connection.
proxy_portStringThe port for the proxy connection.
proxy_authentication_modeStringThe authentication mode for SSH proxy connection. Can be set to PASS, PRIVATE_KEY, PRIVATE_KEY_AND_PASS or ENV_KEY.
proxy_passwordStringThe password required to connect to the proxy server.
proxy_passphraseStringThe passphrase for the private SSH key.
proxy_env_keyStringThe private SSH key name defined in environment variables.
proxy_server_keyStringThe private SSH key.

Example for Proxy Password

  "proxy_authentication_mode": "PASS"  
"proxy_login": "proxyUser",
"proxy_host": "proxyHost",
"proxy_port": "proxyPort",
"proxy_password": "proxyPassword"

Example for Proxy Private Key

  "proxy_authentication_mode": "PRIVATE_KEY"  
"proxy_login": "proxyUser",
"proxy_host": "proxyHost",
"proxy_port": "proxyPort",
"proxy_passphrase": "proxyPassphrase",
"proxy_server_key": "proxyServerkey"

Example for Proxy Private Key and Password

  "proxy_authentication_mode": "PRIVATE_KEY_AND_PASS"  
"proxy_login": "proxyUser",
"proxy_host": "proxyHost",
"proxy_port": "proxyPort",
"proxy_password": "proxyPassword",
"proxy_passphrase": "proxyPassphrase",
"proxy_server_key": "proxyServerkey"

Example for Proxy Env Key

  "proxy_authentication_mode": "ENV_KEY"  
"proxy_login": "proxyUser",
"proxy_host": "proxyHost",
"proxy_port": "proxyPort",
"proxy_env_key": "proxyMyEnvkey"