|
2 | 2 |
|
3 | 3 | [GitHub Action](https://developer.github.com/actions/) for executing remote ssh commands.
|
4 | 4 |
|
5 |
| -<img src="./images/ssh-workflow.png"> |
| 5 | + |
| 6 | + |
| 7 | +[](https://github.com/appleboy/ssh-action/actions) |
6 | 8 |
|
7 | 9 | ## Usage
|
8 | 10 |
|
9 | 11 | Executing remote ssh commands.
|
10 | 12 |
|
| 13 | +```yaml |
| 14 | +- name: executing remote ssh commands using password |
| 15 | + uses: appleboy/ssh-action@master |
| 16 | + with: |
| 17 | + host: ${{ secrets.HOST }} |
| 18 | + username: ${{ secrets.USERNAME }} |
| 19 | + password: ${{ secrets.PASSWORD }} |
| 20 | + port: ${{ secrets.PORT }} |
| 21 | + script: whoami |
11 | 22 | ```
|
12 |
| -action "Executing remote ssh commands" { |
13 |
| - uses = "appleboy/ssh-action@master" |
14 |
| - secrets = [ |
15 |
| - "HOST", |
16 |
| - "PASSWORD", |
17 |
| - ] |
18 |
| - args = [ |
19 |
| - "--user", "actions", |
20 |
| - "--script", "whoami", |
21 |
| - ] |
22 |
| -} |
| 23 | +
|
| 24 | +output: |
| 25 | +
|
| 26 | +```sh |
| 27 | +======CMD====== |
| 28 | +whoami |
| 29 | +======END====== |
| 30 | +out: *** |
| 31 | +========================================== |
| 32 | +Successfully executed commands to all host. |
| 33 | +========================================== |
23 | 34 | ```
|
24 | 35 |
|
25 |
| -## Environment variables |
| 36 | +## Input variables |
26 | 37 |
|
27 |
| -* HOST - ssh server host |
28 |
| -* PORT - ssh server port |
29 |
| -* USERNAME - ssh server username |
30 |
| -* PASSWORD - ssh server password |
31 |
| -* KEY - ssh server private key |
32 |
| -* SCRIPT - execute the scripts |
| 38 | +see the [action.yml](./action.yml) file for more detail imformation. |
33 | 39 |
|
34 |
| -### Example |
| 40 | +* host - scp remote host |
| 41 | +* port - scp remote port |
| 42 | +* username - scp username |
| 43 | +* password - scp password |
| 44 | +* timeout - timeout for ssh to remote host, default is `30s` |
| 45 | +* command_timeout - timeout for scp command, default is `1m` |
| 46 | +* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa |
| 47 | +* key_path - path of ssh private key |
| 48 | +* script - execute commands |
| 49 | +* script_stop - stop script after first failure |
| 50 | +* envs - pass environment variable to shell script |
| 51 | +* debug - enable debug mode |
35 | 52 |
|
36 |
| -Executing remote ssh commands. |
| 53 | +### Example |
37 | 54 |
|
38 |
| -``` |
39 |
| -action "Executing remote ssh commands" { |
40 |
| - uses = "appleboy/ssh-action@master" |
41 |
| - secrets = [ |
42 |
| - "PASSWORD", |
43 |
| - ] |
44 |
| - args = [ |
45 |
| - "--host", "foo.com" |
46 |
| - "--user", "bar", |
47 |
| - "--script", "whoami", |
48 |
| - ] |
49 |
| -} |
| 55 | +Executing remote ssh commands using password. |
| 56 | + |
| 57 | +```yaml |
| 58 | +- name: executing remote ssh commands using password |
| 59 | + uses: appleboy/ssh-action@master |
| 60 | + with: |
| 61 | + host: ${{ secrets.HOST }} |
| 62 | + username: ${{ secrets.USERNAME }} |
| 63 | + password: ${{ secrets.PASSWORD }} |
| 64 | + port: ${{ secrets.PORT }} |
| 65 | + script: whoam |
50 | 66 | ```
|
51 | 67 |
|
52 | 68 | Using private key
|
53 | 69 |
|
54 |
| -``` |
55 |
| -action "Support Private Key" { |
56 |
| - uses = "appleboy/ssh-action@master" |
57 |
| - secrets = [ |
58 |
| - "HOST", |
59 |
| - "KEY", |
60 |
| - ] |
61 |
| - args = [ |
62 |
| - "--user", "actions", |
63 |
| - "--script", "'ls -al'", |
64 |
| - ] |
65 |
| -} |
| 70 | +```yaml |
| 71 | +- name: executing remote ssh commands using ssh key |
| 72 | + uses: appleboy/ssh-action@master |
| 73 | + with: |
| 74 | + host: ${{ secrets.HOST }} |
| 75 | + username: ${{ secrets.USERNAME }} |
| 76 | + key: ${{ secrets.KEY }} |
| 77 | + port: ${{ secrets.PORT }} |
| 78 | + script: whoami |
66 | 79 | ```
|
67 | 80 |
|
68 | 81 | Multiple Commands
|
69 | 82 |
|
70 |
| -``` |
71 |
| -action "Multiple Commands" { |
72 |
| - uses = "appleboy/ssh-action@master" |
73 |
| - secrets = [ |
74 |
| - "HOST", |
75 |
| - "KEY", |
76 |
| - ] |
77 |
| - args = [ |
78 |
| - "--user", "actions", |
79 |
| - "--script", "'whoami'", |
80 |
| - "--script", "'ls -al'", |
81 |
| - ] |
82 |
| -} |
| 83 | +```yaml |
| 84 | +- name: multiple command |
| 85 | + uses: appleboy/ssh-action@master |
| 86 | + with: |
| 87 | + host: ${{ secrets.HOST }} |
| 88 | + username: ${{ secrets.USERNAME }} |
| 89 | + key: ${{ secrets.KEY }} |
| 90 | + port: ${{ secrets.PORT }} |
| 91 | + script: | |
| 92 | + whoami |
| 93 | + ls -al |
83 | 94 | ```
|
84 | 95 |
|
85 |
| -<img src="./images/multiple-command-result.png"> |
| 96 | + |
86 | 97 |
|
87 | 98 | Multiple Hosts
|
88 | 99 |
|
| 100 | +```diff |
| 101 | + uses: appleboy/ssh-action@master |
| 102 | + with: |
| 103 | +- host: "foo.com" |
| 104 | ++ host: "foo.com,bar.com" |
| 105 | + username: ${{ secrets.USERNAME }} |
| 106 | + key: ${{ secrets.KEY }} |
| 107 | + port: ${{ secrets.PORT }} |
| 108 | + script: | |
| 109 | + whoami |
| 110 | + ls -al |
89 | 111 | ```
|
90 |
| -action "Multiple Hosts" { |
91 |
| - uses = "appleboy/ssh-action@master" |
92 |
| - secrets = [ |
93 |
| - "KEY", |
94 |
| - ] |
95 |
| - args = [ |
96 |
| - "--host", "foo.com", |
97 |
| - "--host", "bar.com", |
98 |
| - "--user", "actions", |
99 |
| - "--script", "'whoami'", |
100 |
| - "--script", "'ls -al'", |
101 |
| - "--script", "'cat test.txt'", |
102 |
| - ] |
103 |
| -} |
104 |
| -``` |
105 |
| - |
106 |
| -see the detail of `drone-ssh` command |
107 |
| - |
108 |
| -``` |
109 |
| - --ssh-key value private ssh key [$PLUGIN_SSH_KEY, $PLUGIN_KEY, $SSH_KEY, $KEY] |
110 |
| - --key-path value, -i value ssh private key path [$PLUGIN_KEY_PATH, $SSH_KEY_PATH, $PATH] |
111 |
| - --username value, --user value, -u value connect as user (default: "root") [$PLUGIN_USERNAME, $PLUGIN_USER, $SSH_USERNAME, $USERNAME] |
112 |
| - --password value, -P value user password [$PLUGIN_PASSWORD, $SSH_PASSWORD, $PASSWORD] |
113 |
| - --host value, -H value connect to host [$PLUGIN_HOST, $SSH_HOST, $HOST] |
114 |
| - --port value, -p value connect to port (default: 22) [$PLUGIN_PORT, $SSH_PORT, $PORT] |
115 |
| - --sync sync mode [$PLUGIN_SYNC, $SYNC] |
116 |
| - --timeout value, -t value connection timeout (default: 0s) [$PLUGIN_TIMEOUT, $SSH_TIMEOUT, $TIMEOUT] |
117 |
| - --command.timeout value, -T value command timeout (default: 1m0s) [$PLUGIN_COMMAND_TIMEOUT, $SSH_COMMAND_TIMEOUT, $COMMAND_TIMEOUT] |
118 |
| - --script value, -s value execute commands [$PLUGIN_SCRIPT, $SSH_SCRIPT, $SCRIPT] |
119 |
| - --script.stop stop script after first failure [$PLUGIN_SCRIPT_STOP, $STOP] |
120 |
| - --proxy.ssh-key value private ssh key of proxy [$PLUGIN_PROXY_SSH_KEY, $PLUGIN_PROXY_KEY, $PROXY_SSH_KEY] |
121 |
| - --proxy.key-path value ssh private key path of proxy [$PLUGIN_PROXY_KEY_PATH, $PROXY_SSH_KEY_PATH] |
122 |
| - --proxy.username value connect as user of proxy (default: "root") [$PLUGIN_PROXY_USERNAME, $PLUGIN_PROXY_USER, $PROXY_SSH_USERNAME] |
123 |
| - --proxy.password value user password of proxy [$PLUGIN_PROXY_PASSWORD, $PROXY_SSH_PASSWORD] |
124 |
| - --proxy.host value connect to host of proxy [$PLUGIN_PROXY_HOST, $PROXY_SSH_HOST] |
125 |
| - --proxy.port value connect to port of proxy (default: "22") [$PLUGIN_PROXY_PORT, $PROXY_SSH_PORT] |
126 |
| - --proxy.timeout value proxy connection timeout (default: 0s) [$PLUGIN_PROXY_TIMEOUT, $PROXY_SSH_TIMEOUT] |
127 |
| -``` |
128 |
| - |
129 |
| -## Secrets |
130 |
| - |
131 |
| -* `PASSWORD` - ssh server password |
132 |
| -* `KEY` - ssh server private key |
0 commit comments