-
Notifications
You must be signed in to change notification settings - Fork 15
/
plugin.yaml
166 lines (165 loc) · 6.7 KB
/
plugin.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: openssh-bastion-host-node-execution
description: This plugin provides a node-executor and file-copier supporting ssh actions through a bastion host. Use this plugin if you must access remote servers via a jump host.
rundeckPluginVersion: 1.2
author: (C) Rundeck Inc
date: 03/05/2017
version: 1.0.0
rundeckCompatibilityVersion: 3.x
targetHostCompatibility: unix
license: Apache 2.0
tags:
- script
- node executor
- file copier
sourceLink: https://github.com/rundeck-plugins/openssh-bastion-node-execution
providers:
- name: openssh-bastion-host.node-executor
service: NodeExecutor
title: OpenSSH / Bastion host / Node Executor
description: 'Execute commands through a bastion host'
plugin-type: script
script-interpreter: /bin/bash
script-file: node-executor
script-args: ${exec.command}
config:
- name: bastion_host
title: Default Bastion Host.
type: String
required: false
description: 'Optional Default Bastion Host. You can overwrite this attribute at node level using ssh-bastion-host'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "ssh-bastion-host"
- name: bastion_ssh_key_storage_path
title: Bastion SSH Key
type: String
required: true
description: 'Path to the Bastion host SSH Key to use within Key Storage.'
scope: Project
renderingOptions:
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
storage-file-meta-filter: "Rundeck-key-type=private"
- name: ssh_key_storage_path
title: Node SSH Key
type: String
required: false
description: "Optional storage path for Node ssh-key file. Declare a node attribute named ssh-key-storage-path."
scope: Instance
renderingOptions:
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
instance-scope-node-attribute: "ssh-key-storage-path"
storage-file-meta-filter: "Rundeck-key-type=private"
- name: ssh_opts
title: 'SSH Options'
type: String
required: false
description: 'Optional SSH command line arguments. You can overwrite this attribute at node level using ssh-bastion-ssh-config'
default: '-q -oClearAllForwardings=yes'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "ssh-bastion-ssh-config"
- name: ssh_config
title: 'Template ssh_config'
type: String
required: true
description: 'The SSH config template. Adjust the "user@bastion" to match your needs.'
scope: Project
renderingOptions:
displayType: CODE
codeSyntaxMode: batchfile
default: |
Host *
StrictHostKeyChecking no
Port 22
ProxyCommand ssh user@@bastion_ssh_host@ -W %h:%p
IdentityFile @bastion_ssh_key@
- name: dry_run
title: 'Dry run?'
type: Boolean
required: false
description: 'Just echo what would be done'
- name: ssh_key_storage_path
title: Node SSH Key
type: String
required: false
description: "Optional storage path for Node specific ssh key. Declare a node attribute named ssh-key-storage-path."
scope: Instance
renderingOptions:
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
instance-scope-node-attribute: "ssh-key-storage-path"
storage-file-meta-filter: "Rundeck-key-type=private"
- name: openssh-bastion-host.file-copier
service: FileCopier
title: OpenSSH / Bastion host / File Copier
description: 'Copies to a remote host via a bastion host'
plugin-type: script
script-interpreter: /bin/bash
script-file: file-copier
script-args: ${file-copy.file} ${file-copy.destination}
config:
- name: bastion_host
title: Default Bastion Host.
type: String
required: false
description: 'Optional Default Bastion Host. You can overwrite this attribute at node level using ssh-bastion-host'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "ssh-bastion-host"
- name: bastion_ssh_key_storage_path
title: Bastion SSH Key
type: String
required: true
description: 'Path to the Bastion host SSH Key to use within Key Storage.'
scope: Project
renderingOptions:
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
storage-file-meta-filter: "Rundeck-key-type=private"
- name: ssh_key_storage_path
title: Node SSH key
type: String
required: false
description: "Optional storage path for Node specific ssh key. Declare a node attribute named ssh-key-storage-path."
scope: Instance
renderingOptions:
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
instance-scope-node-attribute: "ssh-key-storage-path"
storage-file-meta-filter: "Rundeck-key-type=private"
- name: ssh_opts
title: 'SSH Options'
type: String
required: false
description: 'Optional SSH command line arguments. You can overwrite this attribute at node level using ssh-bastion-ssh-config'
default: '-q -oClearAllForwardings=yes'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "scp-bastion-ssh-config"
- name: ssh_config
title: ssh_config
type: String
required: true
description: 'The SSH config template. Adjust the "user@bastion" to match your needs.'
scope: Project
renderingOptions:
displayType: CODE
codeSyntaxMode: batchfile
default: |
Host *
StrictHostKeyChecking no
Port 22
ProxyCommand ssh user@@bastion_ssh_host@ -W %h:%p
IdentityFile @bastion_ssh_key@
- name: dry_run
title: 'Dry run?'
type: Boolean
required: false
description: 'Just echo what would be done'