date | title | author | tags | repo | logo | image | |||
---|---|---|---|---|---|---|---|---|---|
2019-08-04 00:00:00 +0000 |
SSH |
appleboy |
|
appleboy/drone-ssh |
term.svg |
appleboy/drone-ssh |
Use the SSH plugin to execute commands on a remote server. The below pipeline configuration demonstrates simple usage:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
password: 1234
port: 22
script:
- echo hello
- echo world
Example configuration in your .drone.yml
file for multiple hosts:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host:
+ - foo.com
+ - bar.com
username: root
password: 1234
port: 22
script:
- echo hello
- echo world
Example configuration for multiple hosts with different port:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host:
+ - foo.com:1234
+ - bar.com:5678
username: root
password: 1234
- port: 22
script:
- echo hello
- echo world
Example configuration for command timeout, default value is 60 seconds:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
password: 1234
port: 22
+ command_timeout: 2m
script:
- echo hello
- echo world
Example configuration for execute commands on a remote server using `SSHProxyCommand`:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
password: 1234
port: 22
script:
- echo hello
- echo world
+ proxy_host: 10.130.33.145
+ proxy_user: ubuntu
+ proxy_port: 22
+ proxy_password: 1234
Example configuration using password from secrets:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
+ password:
+ from_secret: ssh_password
port: 22
script:
- echo hello
- echo world
Example configuration using ssh key from secrets:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
port: 22
+ key:
+ from_secret: ssh_key
script:
- echo hello
- echo world
Example configuration for exporting custom secrets:
- name: ssh commands
image: appleboy/drone-ssh
environment:
commit: ${DRONE_BUILD_NUMBER}
settings:
host: foo.com
username: root
password: 1234
port: 22
+ envs:
- aws_access_key_id
- commit
script:
- export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- echo $commit
Example configuration for stoping script after first failure:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
password: 1234
port: 22
+ script_stop: true
script:
- mkdir abc/def/efg
- echo "you can't see the steps."
Example configuration for passphrase which protecting a private key:
- name: ssh commands
image: appleboy/drone-ssh
settings:
host: foo.com
username: root
+ key:
+ from_secret: ssh_key
+ passphrase: 1234
port: 22
script:
- mkdir abc/def/efg
- echo "you can't see the steps."
ssh_username : account for target host user
ssh_password : password for target host user
ssh_passphrase : The purpose of the passphrase is usually to encrypt the private key.
ssh_key : plain text of user private key
proxy_ssh_username : account for user of proxy server
proxy_ssh_password : password for user of proxy server
proxy_ssh_passphrase : The purpose of the passphrase is usually to encrypt the private key.
proxy_ssh_key : plain text of user private key for proxy server
host : target hostname or IP
port : ssh port of target host
username : account for target host user
password : password for target host user
key : plain text of user private key
key_path : key path of user private key
envs : custom secrets which are made available in the script section
script : execute commands on a remote server
script_stop : stop script after first failure
timeout : Timeout is the maximum amount of time for the ssh connection to establish, default is 30 seconds.
command_timeout : Command timeout is the maximum amount of time for the execute commands, default is 10 minutes.
proxy_host : proxy hostname or IP
proxy_port : ssh port of proxy host
proxy_username : account for proxy host user
proxy_password : password for proxy host user
proxy_key : plain text of proxy private key
proxy_key_path : key path of proxy private key