Skip to content

Commit 0cce6ff

Browse files
vnitinvstacywsmith
authored andcommitted
Priv ssh key (#205)
* added ssh_private_key_file paramter to all modules * replaced args to m_args as being used by other params
1 parent deb0f9b commit 0cce6ff

14 files changed

+154
-14
lines changed

library/junos_cli

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ options:
6666
- port number to use when connecting to the device
6767
required: false
6868
default: 830
69+
ssh_private_key_file:
70+
description:
71+
- This can be used if you need to provide a private key rather than
72+
loading the key into the ssh-key-ring/environment. if your
73+
ssh-key requires a password, then you must provide it via
74+
**passwd**
75+
required: false
76+
default: None
6977
mode:
7078
description:
7179
- mode of console connection (telnet/serial). If mode is not
@@ -130,6 +138,7 @@ def main():
130138
user=dict(required=False, default=os.getenv('USER')),
131139
passwd=dict(required=False, default=None, no_log=True),
132140
port=dict(required=False, default=830),
141+
ssh_private_key_file=dict(required=False, default=None),
133142
mode=dict(required=False, default=None),
134143
timeout=dict(required=False, type='int', default=0),
135144
logfile=dict(required=False, default=None),
@@ -162,7 +171,8 @@ def main():
162171

163172
try:
164173
dev = Device(args['host'], user=args['user'], password=args['passwd'],
165-
port=args['port'], mode=args['mode'], gather_facts=False).open()
174+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
175+
mode=args['mode'], gather_facts=False).open()
166176
except Exception as err:
167177
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
168178
logging.error(msg)

library/junos_commit

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ options:
6363
- port number to use when connecting to the device
6464
required: false
6565
default: 830
66+
ssh_private_key_file:
67+
description:
68+
- This can be used if you need to provide a private key rather than
69+
loading the key into the ssh-key-ring/environment. if your
70+
ssh-key requires a password, then you must provide it via
71+
**passwd**
72+
required: false
73+
default: None
6674
mode:
6775
description:
6876
- mode of console connection (telnet/serial). If mode is not
@@ -119,6 +127,7 @@ def main():
119127
user=dict(required=False, default=os.getenv('USER')),
120128
passwd=dict(required=False, default=None, no_log=True),
121129
port=dict(required=False, default=830),
130+
ssh_private_key_file=dict(required=False, default=None),
122131
mode=dict(required=False, default=None),
123132
timeout=dict(required=False, default=0),
124133
logfile=dict(required=False, default=None),
@@ -154,7 +163,8 @@ def main():
154163

155164
try:
156165
dev = Device(args['host'], user=args['user'], password=args['passwd'],
157-
port=args['port'], mode=args['mode'], gather_facts=False).open()
166+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
167+
mode=args['mode'], gather_facts=False).open()
158168
except Exception as err:
159169
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
160170
logging.error(msg)

library/junos_get_config

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,14 @@ options:
6464
- port number to use when connecting to the device
6565
required: false
6666
default: 830
67+
ssh_private_key_file:
68+
description:
69+
- This can be used if you need to provide a private key rather than
70+
loading the key into the ssh-key-ring/environment. if your
71+
ssh-key requires a password, then you must provide it via
72+
**passwd**
73+
required: false
74+
default: None
6775
mode:
6876
description:
6977
- mode of console connection (telnet/serial). If mode is not
@@ -133,6 +141,7 @@ def main():
133141
user=dict(required=False, default=os.getenv('USER')),
134142
passwd=dict(required=False, default=None, no_log=True),
135143
port=dict(required=False, default=830),
144+
ssh_private_key_file=dict(required=False, default=None),
136145
mode=dict(required=False, default=None),
137146
logfile=dict(required=False, default=None),
138147
dest=dict(required=True, default=None),
@@ -168,7 +177,8 @@ def main():
168177

169178
try:
170179
dev = Device(args['host'], user=args['user'], password=args['passwd'],
171-
port=args['port'], mode=args['mode'], gather_facts=False).open()
180+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
181+
mode=args['mode'], gather_facts=False).open()
172182
except Exception as err:
173183
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
174184
logging.error(msg)

library/junos_get_facts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ options:
8686
- port number to use when connecting to the device
8787
required: false
8888
default: 830
89+
ssh_private_key_file:
90+
description:
91+
- This can be used if you need to provide a private key rather than
92+
loading the key into the ssh-key-ring/environment. if your
93+
ssh-key requires a password, then you must provide it via
94+
**passwd**
95+
required: false
96+
default: None
8997
mode:
9098
description:
9199
- mode of console connection (telnet/serial). If mode is not
@@ -143,6 +151,7 @@ def main():
143151
user=dict(required=False, default=os.getenv('USER')),
144152
passwd=dict(required=False, default=None, no_log=True),
145153
port=dict(required=False, default=830),
154+
ssh_private_key_file=dict(required=False, default=None),
146155
mode=dict(required=False, default=None)),
147156
supports_check_mode=True)
148157

@@ -164,7 +173,8 @@ def main():
164173
# via NETCONF
165174
# -----------
166175
dev = Device(m_args['host'], user=m_args['user'], passwd=m_args['passwd'], port=m_args['port'],
167-
mode=m_args['mode'], gather_facts=True)
176+
ssh_private_key_file=m_args['ssh_private_key_file'], mode=m_args['mode'],
177+
gather_facts=True)
168178
try:
169179
dev.open()
170180
except Exception as err:

library/junos_get_table

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ options:
5151
- port number to use when connecting to the device
5252
required: false
5353
default: 830
54+
ssh_private_key_file:
55+
description:
56+
- This can be used if you need to provide a private key rather than
57+
loading the key into the ssh-key-ring/environment. if your
58+
ssh-key requires a password, then you must provide it via
59+
**passwd**
60+
required: false
61+
default: None
5462
mode:
5563
description:
5664
- mode of console connection (telnet/serial). If mode is not
@@ -182,6 +190,7 @@ def main():
182190
default=os.getenv('USER')),
183191
passwd=dict(required=False, default=None, no_log=True),
184192
port=dict(required=False, default=830),
193+
ssh_private_key_file=dict(required=False, default=None),
185194
mode=dict(required=False, default=None),
186195
logfile=dict(required=False, default=None),
187196
file=dict(required=True, default=None),
@@ -216,7 +225,8 @@ def main():
216225
args['port']))
217226
try:
218227
dev = Device(args['host'], user=args['user'], password=args['passwd'],
219-
port=args['port'], mode=args['mode'], gather_facts=False).open()
228+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
229+
mode=args['mode'], gather_facts=False).open()
220230
except Exception as err:
221231
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
222232
logging.error(msg)

library/junos_install_config

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,14 @@ options:
133133
- port number to use when connecting to the device
134134
required: false
135135
default: 830
136+
ssh_private_key_file:
137+
description:
138+
- This can be used if you need to provide a private key rather than
139+
loading the key into the ssh-key-ring/environment. if your
140+
ssh-key requires a password, then you must provide it via
141+
**passwd**
142+
required: false
143+
default: None
136144
mode:
137145
description:
138146
- mode of console connection (telnet/serial). If mode is not
@@ -230,7 +238,8 @@ def _load_via_netconf(module):
230238

231239
try:
232240
dev = Device(args['host'], user=args['user'], password=args['passwd'], port=args['port'],
233-
mode=args['mode'], gather_facts=False)
241+
ssh_private_key_file=args['ssh_private_key_file'], mode=args['mode'],
242+
gather_facts=False)
234243
dev.open()
235244
except Exception as err:
236245
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
@@ -431,6 +440,7 @@ def main():
431440
timeout=dict(required=False, default=0),
432441
comment=dict(required=False, default=None),
433442
port=dict(required=False, default=830),
443+
ssh_private_key_file=dict(required=False, default=None),
434444
mode=dict(required=False, default=None),
435445
confirm=dict(required=False, default=None),
436446
check_commit_wait=dict(required=False, default=None)

library/junos_install_os

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ options:
114114
- port number to use when connecting to the device
115115
required: false
116116
default: 830
117+
ssh_private_key_file:
118+
description:
119+
- This can be used if you need to provide a private key rather than
120+
loading the key into the ssh-key-ring/environment. if your
121+
ssh-key requires a password, then you must provide it via
122+
**passwd**
123+
required: false
124+
default: None
117125
'''
118126

119127
EXAMPLES = '''
@@ -221,7 +229,8 @@ def main():
221229
no_copy=dict(required=False, type='bool', choices=BOOLEANS, default=False),
222230
reboot=dict(required=False, type='bool', choices=BOOLEANS, default=True),
223231
reboot_pause=dict(required=False, type='int', default=10),
224-
port=dict(required=False, default=830)
232+
port=dict(required=False, default=830),
233+
ssh_private_key_file=dict(required=False, default=None)
225234
),
226235
supports_check_mode=True
227236
)
@@ -242,7 +251,8 @@ def main():
242251
# @@@ need to verify that the package file actually exists
243252
# @@@ before proceeding.
244253

245-
dev = Device(args['host'], user=args['user'], password=args['passwd'], port=args['port'])
254+
dev = Device(args['host'], user=args['user'], password=args['passwd'], port=args['port'],
255+
ssh_private_key_file=args['ssh_private_key_file'])
246256
try:
247257
dev.open()
248258
except Exception as err:

library/junos_jsnapy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ options:
7474
- port number to use when connecting to the device
7575
required: false
7676
default: 830
77+
ssh_private_key_file:
78+
description:
79+
- This can be used if you need to provide a private key rather than
80+
loading the key into the ssh-key-ring/environment. if your
81+
ssh-key requires a password, then you must provide it via
82+
**passwd**
83+
required: false
84+
default: None
7785
mode:
7886
description:
7987
- mode of console connection (telnet/serial). If mode is not
@@ -284,6 +292,7 @@ def main():
284292
user=dict(required=False, default=os.getenv('USER')),
285293
passwd=dict(required=False, default=None, no_log=True),
286294
port=dict(required=False, default=830),
295+
ssh_private_key_file=dict(required=False, default=None),
287296
mode=dict(required=False, default=None),
288297
logfile=dict(required=False, default=None),
289298
test_files=dict(required=False, type='list', default=None),
@@ -314,7 +323,8 @@ def main():
314323

315324
try:
316325
dev = Device(args['host'], user=args['user'], password=args['passwd'],
317-
port=args['port'], mode=args['mode'], gather_facts=False).open()
326+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
327+
mode=args['mode'], gather_facts=False).open()
318328
except Exception as err:
319329
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
320330
logging.error(msg)

library/junos_ping

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ options:
6262
- port number to use when connecting to the device
6363
required: false
6464
default: 830
65+
ssh_private_key_file:
66+
description:
67+
- This can be used if you need to provide a private key rather than
68+
loading the key into the ssh-key-ring/environment. if your
69+
ssh-key requires a password, then you must provide it via
70+
**passwd**
71+
required: false
72+
default: None
6573
mode:
6674
description:
6775
- mode of console connection (telnet/serial). If mode is not
@@ -161,6 +169,7 @@ def main():
161169
user=dict(required=False, default=os.getenv('USER')),
162170
passwd=dict(required=False, default=None, no_log=True),
163171
port=dict(required=False, default=830),
172+
ssh_private_key_file=dict(required=False, default=None),
164173
mode=dict(required=False, default=None),
165174
timeout=dict(required=False, default=0),
166175
dest_ip=dict(required=True, default=None),
@@ -195,6 +204,7 @@ def main():
195204
user=m_args['user'],
196205
passwd=m_args['passwd'],
197206
port=m_args['port'],
207+
ssh_private_key_file=m_args['ssh_private_key_file'],
198208
mode=m_args['mode'],
199209
gather_facts=False)
200210

library/junos_rollback

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ options:
6363
- port number to use when connecting to the device
6464
required: false
6565
default: 830
66+
ssh_private_key_file:
67+
description:
68+
- This can be used if you need to provide a private key rather than
69+
loading the key into the ssh-key-ring/environment. if your
70+
ssh-key requires a password, then you must provide it via
71+
**passwd**
72+
required: false
73+
default: None
6674
mode:
6775
description:
6876
- mode of console connection (telnet/serial). If mode is not
@@ -135,6 +143,7 @@ def main():
135143
user=dict(required=False, default=os.getenv('USER')),
136144
passwd=dict(required=False, default=None, no_log=True),
137145
port=dict(required=False, default=830),
146+
ssh_private_key_file=dict(required=False, default=None),
138147
mode=dict(required=False, default=None),
139148
logfile=dict(required=False, default=None),
140149
rollback=dict(required=True, default=None),
@@ -179,7 +188,8 @@ def main():
179188

180189
try:
181190
dev = Device(args['host'], user=args['user'], password=args['passwd'],
182-
port=args['port'], mode=args['mode'], gather_facts=False).open()
191+
port=args['port'], ssh_private_key_file=args['ssh_private_key_file'],
192+
mode=args['mode'], gather_facts=False).open()
183193
except Exception as err:
184194
msg = 'unable to connect to {0}: {1}'.format(args['host'], str(err))
185195
logging.error(msg)

0 commit comments

Comments
 (0)