用作 cicd/ssh-action 仓库基础组件
Go to file
Bo-Yi Wu 27b9f04a04 remove secrets flag
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-05-15 06:45:04 +08:00
docker feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
images docs: update logo path 2019-03-04 14:28:19 +08:00
tests feat: add some testing. (#32) 2017-01-23 16:00:48 +08:00
.drone.jsonnet feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
.drone.yml chore: add lint check 2019-03-04 16:10:45 +08:00
.editorconfig feat: add editor config. 2017-08-01 16:04:55 +08:00
.gitignore add arm arm64 and amd64 build. (#106) 2017-11-09 20:12:30 -06:00
.revive.toml chore: add revive config 2019-03-04 16:17:27 +08:00
DOCS.md docs: update to drone 1.0 2019-03-11 14:47:55 +08:00
go.mod chore: change command timeout flag (#138) 2019-03-11 14:36:17 +08:00
go.sum chore: change command timeout flag (#138) 2019-03-11 14:36:17 +08:00
LICENSE refactor: remove unnecessary files. 2017-01-23 09:24:28 +08:00
main.go remove secrets flag 2019-05-15 06:45:04 +08:00
Makefile feat(vendor): switch to go module (#137) 2019-03-04 10:55:52 +08:00
pipeline.libsonnet chore: add lint check 2019-03-04 16:10:45 +08:00
plugin_test.go chore: Add short variable 2019-05-14 22:15:29 +08:00
plugin.go chore: Add short variable 2019-05-14 22:15:29 +08:00
README.md Update README.md 2019-05-09 14:16:02 +08:00

drone-ssh

GitHub tag GoDoc Build Status codecov Go Report Card Docker Pulls

Drone plugin to execute commands on a remote host through SSH. For the usage information and a listing of the available options please take a look at the docs.

Note: Please update your image config path to appleboy/drone-ssh for drone. plugins/ssh is no longer maintained.

demo

Breaking changes

v1.5.0: change command timeout flag to Duration. See the following setting:

pipeline:
  scp:
    image: appleboy/drone-scp
    settings:
      host:
        - example1.com
        - example2.com
      username: ubuntu
      password:
        from_secret: ssh_password
      port: 22
-     command_timeout: 120
+     command_timeout: 2m
      script:
        - echo "Hello World"

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux arm/amd64/386
  • Darwin amd64/386

With Go installed

$ go get -u -v github.com/appleboy/drone-ssh

or build the binary with the following command:

$ export GOOS=linux
$ export GOARCH=amd64
$ export CGO_ENABLED=0
$ export GO111MODULE=on

$ go test -cover ./...

$ go build -v -a -tags netgo -o release/linux/amd64/drone-ssh .

Docker

Build the docker image with the following commands:

$ make docker

Usage

Execute from the working directory:

docker run --rm \
  -e PLUGIN_HOST=foo.com \
  -e PLUGIN_USERNAME=root \
  -e PLUGIN_KEY="$(cat ${HOME}/.ssh/id_rsa)" \
  -e PLUGIN_SCRIPT=whoami \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-ssh

Mount key from file path

Please make sure that enable the trusted mode in project setting for drone 0.8 version.

trusted mode

Mount private key in volumes setting of .drone.yml config

pipeline:
  ssh:
    image: appleboy/drone-ssh
    host: xxxxx.com
    username: deploy
+   volumes:
+     - /root/drone_rsa:/root/ssh/drone_rsa
    key_path: /root/ssh/drone_rsa
    script:
      - echo "test ssh"

See the detail of issue comment.