Skip to content

Latest commit

 

History

History
214 lines (190 loc) · 5.08 KB

DOCS.md

File metadata and controls

214 lines (190 loc) · 5.08 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
ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/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: ghcr.io/appleboy/drone-ssh
    environment:
      # MUST BE in UPPERCASE
      COMMIT:
        from_secret: commit
    settings:
      host: foo.com
      username: root
      password: 1234
      port: 22
+     envs:
        # can be in lowercase (uppercased in code)
        - commit
      script:
        - echo $COMMIT

Example configuration for stoping script after first failure:

  - name: ssh commands
    image: ghcr.io/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: ghcr.io/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

Key Description
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

Key Description
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