-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.yaml
172 lines (171 loc) · 6.32 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
166
167
168
169
170
171
172
name: aws-ec2-ice-host-node-execution
description: This plugin provides a node-executor and file-copier supporting ssh actions through AWS EC2 Instance Connect Endpoint.
rundeckPluginVersion: 1.2
author: (C) Ed Kingscote
date: 10/10/2024
version: 1.0.0
rundeckCompatibilityVersion: 3.x
targetHostCompatibility: unix
license: Apache 2.0
tags:
- script
- node executor
- file copier
sourceLink: https://github.com/EdKingscote/rundeck-plugin-aws-ec2-ice-node-execution
providers:
- name: aws-ec2-ice-host.node-executor
service: NodeExecutor
title: OpenSSH / AWS EC2 ICE / Node Executor
description: 'Execute commands through AWS EC2 ICE'
plugin-type: script
script-interpreter: /bin/bash
script-file: node-executor
script-args: ${exec.command}
config:
- name: aws_access_key_id
title: AWS Access Key ID
type: String
required: true
description: 'The AWS Access Key'
scope: Project
renderingOptions:
groupName: AWS
- name: aws_secret_access_key_storage_path
title: AWS Secret Access Key
type: String
required: true
description: 'Path to the AWS Secret Key to use within Key Storage.'
scope: Project
renderingOptions:
groupName: AWS
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
storage-file-meta-filter: "Rundeck-data-type=password"
- name: aws_default_region
title: AWS Default Region
type: String
required: true
description: 'The Default AWS Region'
scope: Project
renderingOptions:
groupName: AWS
- 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-ssh-config'
default: '-q -oClearAllForwardings=yes'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "ssh-ssh-config"
- name: ssh_config
title: 'Template ssh_config'
type: String
required: true
description: 'The SSH config template'
scope: Project
renderingOptions:
displayType: CODE
codeSyntaxMode: batchfile
default: |
Host i-*
StrictHostKeyChecking no
Port 22
ProxyCommand aws ec2-instance-connect open-tunnel --instance-id @instance_id@
IdentityFile @ssh_key@
- name: dry_run
title: 'Dry run?'
type: Boolean
required: false
description: 'Just echo what would be done'
- name: aws-ec2-ice-host.file-copier
service: FileCopier
title: OpenSSH / AWS EC2 ICE / File Copier
description: 'Copies to a remote host via AWS EC2 ICE'
plugin-type: script
script-interpreter: /bin/bash
script-file: file-copier
script-args: ${file-copy.file} ${file-copy.destination}
config:
- name: aws_access_key_id
title: AWS Access Key ID
type: String
required: true
description: 'The AWS Access Key'
scope: Project
renderingOptions:
groupName: AWS
- name: aws_secret_access_key_storage_path
title: AWS Secret Access Key
type: String
required: true
description: 'Path to the AWS Secret Key to use within Key Storage.'
scope: Project
renderingOptions:
groupName: AWS
selectionAccessor: "STORAGE_PATH"
valueConversion: "STORAGE_PATH_AUTOMATIC_READ"
storage-path-root: "keys"
storage-file-meta-filter: "Rundeck-data-type=password"
- name: aws_default_region
title: AWS Default Region
type: String
required: true
description: 'The Default AWS Region'
scope: Project
renderingOptions:
groupName: AWS
- 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-scp-config'
default: '-q -oClearAllForwardings=yes'
scope: Instance
renderingOptions:
instance-scope-node-attribute: "ssh-scp-config"
- name: ssh_config
title: 'Template ssh_config'
type: String
required: true
description: 'The SSH config template'
scope: Project
renderingOptions:
displayType: CODE
codeSyntaxMode: batchfile
default: |
Host i-*
StrictHostKeyChecking no
Port 22
ProxyCommand aws ec2-instance-connect open-tunnel --instance-id @instance_id@
IdentityFile @ssh_key@
- name: dry_run
title: 'Dry run?'
type: Boolean
required: false
description: 'Just echo what would be done'