Skip to content

Latest commit

 

History

History
257 lines (210 loc) · 4.77 KB

DOCS.md

File metadata and controls

257 lines (210 loc) · 4.77 KB
date title author tags repo logo image
2019-08-04 00:00:00 +0000
SSH
appleboy
deploy
publish
ssh
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."

Secret Reference

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

Parameter Reference

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