Concourse SSH Resource

SSH resource for Concourse CI
Source Configuration
host: host name of remote machine
port: port of SSH server on remote machine, 22 by default
user: user for executing shell script on remote machine
password: plain password for user on remote machine
private_key: private SSH key for user on remote machine
Caveats
According to appleboy/easyssh-proxy, if password and private_key both exists, password would be used first, then private_key.
Behavior
This is a put-only resource, check and in does nothing.
out: Run commands via SSH
Execute shell script on remote machine via SSH.
Parameters
interpreter: string, path to interpreter on remote machine, e.g. /usr/bin/python3, /bin/sh by default
script: string, shell script to run on remote machine
placeholders: Map of name and either value for a static value, or file for a dynamic value read from a file. Every string matches name in your script defintion will then be replaced by either the value or the content of file. If file is used, only the first line of file content would be used. Example:
---
- put: myserver
params:
interpreter: /bin/sh
script: |
echo "<MyPlaceHolder>"
echo "|dynamicPlaceHolder|"
placeholders:
- name: "<MyPlaceHolder>"
value: "somevalue"
- name: "|dynamicPlaceHolder|"
file: "myresource/somefile"
Examples
---
resource_types:
- name: ssh
type: docker-image
source:
repository: quay.io/henry40408/concourse-ssh-resource
resources:
- name: staging-server
type: ssh
source:
host: 127.0.0.1
user: root
password: ((ssh_password))
jobs:
- name: echo
plan:
# Basic usage
- put: staging-server
params:
interpreter: /usr/bin/env python3
script: |
print("Hello, world!")
# Placeholder usage
- put: staging-server
params:
interpreter: /bin/sh
script: |
echo "<static_value>"
echo "|dynamic_value|"
placeholders:
- name: "<static_value>"
value: "foo"
- name: "|dynamic_value|"
file: "bar"
How to Test
We need to start a simple SSH server first. I assume there is no SSH server currently running on your laptop or workstation.
For more information about the SSH server, please checkout henry40408/alpine-ssh.
docker run -d -p 22:22 quay.io/henry40408/alpine-ssh
make test
Contributors
sorted in alphabetical order
License
MIT