用作 cicd/ssh-action 仓库基础组件
Go to file
2018-09-26 15:35:57 +08:00
screenshot Update document for mount key path. (#100) 2017-10-29 20:46:16 -05:00
tests feat: add some testing. (#32) 2017-01-23 16:00:48 +08:00
vendor upgrade easyssh to 1.1.6 (#81) 2017-05-16 15:45:00 +08:00
.drone.yml refactor(drone): replace facebook with discord. 2017-12-18 09:34:36 +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
Dockerfile add arm arm64 and amd64 build. (#106) 2017-11-09 20:12:30 -06:00
Dockerfile.armhf Added Dockerfile for armhf builds 2016-07-11 19:46:34 +02:00
DOCS.md remove unused doc. 2017-12-18 09:30:13 +08:00
LICENSE refactor: remove unnecessary files. 2017-01-23 09:24:28 +08:00
main.go exit after first error (#123) 2018-09-26 15:23:31 +08:00
Makefile add arm arm64 and amd64 build. (#106) 2017-11-09 20:12:30 -06:00
plugin_test.go test: add TestCommandScriptStop (#124) 2018-09-26 15:35:57 +08:00
plugin.go exit after first error (#123) 2018-09-26 15:23:31 +08:00
README.md Update document for mount key path. (#100) 2017-10-29 20:46:16 -05:00
ssh.png docs: [ci skip] add icon 2017-01-23 11:12:16 +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

Build

Build the binary with the following commands:

go build
go test

Docker

Build the docker image with the following commands:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo
docker build -t appleboy/drone-ssh .

Please note incorrectly building the image for the correct x64 linux and with GCO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-ssh' not found or does not exist..

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.

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.