diff --git a/README.md b/README.md index 3ddb7ea..a96cb89 100644 --- a/README.md +++ b/README.md @@ -2,131 +2,110 @@ [GitHub Action](https://developer.github.com/actions/) for executing remote ssh commands. - +![ssh workflow](./images/ssh-workflow.png) + +[![Actions Status](https://github.com/appleboy/ssh-action/workflows/remote%20ssh%20command/badge.svg)](https://github.com/appleboy/ssh-action/actions) ## Usage Executing remote ssh commands. +```yaml +- name: executing remote ssh commands using password + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + password: ${{ secrets.PASSWORD }} + port: ${{ secrets.PORT }} + script: whoami ``` -action "Executing remote ssh commands" { - uses = "appleboy/ssh-action@master" - secrets = [ - "HOST", - "PASSWORD", - ] - args = [ - "--user", "actions", - "--script", "whoami", - ] -} + +output: + +```sh +======CMD====== +whoami +======END====== +out: *** +========================================== +Successfully executed commands to all host. +========================================== ``` -## Environment variables +## Input variables -* HOST - ssh server host -* PORT - ssh server port -* USERNAME - ssh server username -* PASSWORD - ssh server password -* KEY - ssh server private key -* SCRIPT - execute the scripts +see the [action.yml](./action.yml) file for more detail imformation. -### Example +* host - scp remote host +* port - scp remote port +* username - scp username +* password - scp password +* timeout - timeout for ssh to remote host, default is `30s` +* command_timeout - timeout for scp command, default is `1m` +* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa +* key_path - path of ssh private key +* script - execute commands +* script_stop - stop script after first failure +* envs - pass environment variable to shell script +* debug - enable debug mode -Executing remote ssh commands. +### Example -``` -action "Executing remote ssh commands" { - uses = "appleboy/ssh-action@master" - secrets = [ - "PASSWORD", - ] - args = [ - "--host", "foo.com" - "--user", "bar", - "--script", "whoami", - ] -} +Executing remote ssh commands using password. + +```yaml +- name: executing remote ssh commands using password + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + password: ${{ secrets.PASSWORD }} + port: ${{ secrets.PORT }} + script: whoam ``` Using private key -``` -action "Support Private Key" { - uses = "appleboy/ssh-action@master" - secrets = [ - "HOST", - "KEY", - ] - args = [ - "--user", "actions", - "--script", "'ls -al'", - ] -} +```yaml +- name: executing remote ssh commands using ssh key + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + key: ${{ secrets.KEY }} + port: ${{ secrets.PORT }} + script: whoami ``` Multiple Commands -``` -action "Multiple Commands" { - uses = "appleboy/ssh-action@master" - secrets = [ - "HOST", - "KEY", - ] - args = [ - "--user", "actions", - "--script", "'whoami'", - "--script", "'ls -al'", - ] -} +```yaml +- name: multiple command + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + key: ${{ secrets.KEY }} + port: ${{ secrets.PORT }} + script: | + whoami + ls -al ``` - +![result](./images/output-result.png) Multiple Hosts +```diff + uses: appleboy/ssh-action@master + with: +- host: "foo.com" ++ host: "foo.com,bar.com" + username: ${{ secrets.USERNAME }} + key: ${{ secrets.KEY }} + port: ${{ secrets.PORT }} + script: | + whoami + ls -al ``` -action "Multiple Hosts" { - uses = "appleboy/ssh-action@master" - secrets = [ - "KEY", - ] - args = [ - "--host", "foo.com", - "--host", "bar.com", - "--user", "actions", - "--script", "'whoami'", - "--script", "'ls -al'", - "--script", "'cat test.txt'", - ] -} -``` - -see the detail of `drone-ssh` command - -``` - --ssh-key value private ssh key [$PLUGIN_SSH_KEY, $PLUGIN_KEY, $SSH_KEY, $KEY] - --key-path value, -i value ssh private key path [$PLUGIN_KEY_PATH, $SSH_KEY_PATH, $PATH] - --username value, --user value, -u value connect as user (default: "root") [$PLUGIN_USERNAME, $PLUGIN_USER, $SSH_USERNAME, $USERNAME] - --password value, -P value user password [$PLUGIN_PASSWORD, $SSH_PASSWORD, $PASSWORD] - --host value, -H value connect to host [$PLUGIN_HOST, $SSH_HOST, $HOST] - --port value, -p value connect to port (default: 22) [$PLUGIN_PORT, $SSH_PORT, $PORT] - --sync sync mode [$PLUGIN_SYNC, $SYNC] - --timeout value, -t value connection timeout (default: 0s) [$PLUGIN_TIMEOUT, $SSH_TIMEOUT, $TIMEOUT] - --command.timeout value, -T value command timeout (default: 1m0s) [$PLUGIN_COMMAND_TIMEOUT, $SSH_COMMAND_TIMEOUT, $COMMAND_TIMEOUT] - --script value, -s value execute commands [$PLUGIN_SCRIPT, $SSH_SCRIPT, $SCRIPT] - --script.stop stop script after first failure [$PLUGIN_SCRIPT_STOP, $STOP] - --proxy.ssh-key value private ssh key of proxy [$PLUGIN_PROXY_SSH_KEY, $PLUGIN_PROXY_KEY, $PROXY_SSH_KEY] - --proxy.key-path value ssh private key path of proxy [$PLUGIN_PROXY_KEY_PATH, $PROXY_SSH_KEY_PATH] - --proxy.username value connect as user of proxy (default: "root") [$PLUGIN_PROXY_USERNAME, $PLUGIN_PROXY_USER, $PROXY_SSH_USERNAME] - --proxy.password value user password of proxy [$PLUGIN_PROXY_PASSWORD, $PROXY_SSH_PASSWORD] - --proxy.host value connect to host of proxy [$PLUGIN_PROXY_HOST, $PROXY_SSH_HOST] - --proxy.port value connect to port of proxy (default: "22") [$PLUGIN_PROXY_PORT, $PROXY_SSH_PORT] - --proxy.timeout value proxy connection timeout (default: 0s) [$PLUGIN_PROXY_TIMEOUT, $PROXY_SSH_TIMEOUT] -``` - -## Secrets - -* `PASSWORD` - ssh server password -* `KEY` - ssh server private key diff --git a/images/multiple-command-result.png b/images/multiple-command-result.png deleted file mode 100644 index 3e19563..0000000 Binary files a/images/multiple-command-result.png and /dev/null differ diff --git a/images/output-result.png b/images/output-result.png new file mode 100644 index 0000000..7b453ee Binary files /dev/null and b/images/output-result.png differ